⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 str.c

📁 《精通Unix下C语言编程与项目实践》的源代码
💻 C
字号:
#include <comlib.h>char * TrimString(char* szDest){	int n, nLen;	if (szDest != NULL)	{		/* ―――― 以下删除字符串右边的空格 ―――― */		for (n = strlen(szDest); n > 0; n--)		{			if (!isblank(szDest[n - 1]))  break;		}		szDest[n] = '\0'; 			/* 将右边最靠左的一个空格替换为0既可 */		/* ―――― 以下删除字符串左边的空格 ―――― */		nLen = strlen(szDest);		for (n = 0; n < nLen; n++)		{			if (!isblank(szDest[n])) break;		}		strcpy(szDest, szDest + n);	/* 从左边第一个非空格起向前移动到串首既可*/	}	return szDest;}int strrespre(char *buf, PSTRRESVAR pStrstu){	int i = 0, j = 0;	char *p1, *p2;	ASSERT(buf != NULL && pStrstu != NULL && pStrstu->filedlen != NULL);	ASSERT(pStrstu->filedaddr != NULL);	if (pStrstu->nFlag == 0)				/* 固定长度报文 */	{		for (i=0; i<pStrstu->nAmount; i++)		{			pStrstu->filedaddr[i] = buf + j;			j = j + pStrstu->filedlen[i] + pStrstu->nCompartlen;		}	}	else										/* 固定分隔报文 */	{		p1 = buf;		p2 = p1;		while (p1 != NULL && i<= pStrstu->nAmount)		{			pStrstu->filedaddr[i] = p1;			/* p1指向数据域首地址 */			p2 = strstr(p1, pStrstu->szCompart);			if (p2 == NULL)						/* 最后一个数据域 */			{				pStrstu->filedlen[i] = strlen(p1);				p1 = NULL;			}			else 								/* 非最后一个数据域 */			{				pStrstu->filedlen[i] = p2 - p1;	/* 数据域长度 */				p1 = p2 + pStrstu->nCompartlen;	/* p1指向下一个数据域首地址 */			}			i++;								/* 当前解析的数据域编号 */		}	}	return 0;}int strresvalue(char *buf, STRRESVAR Strstu, int nIndex, void *pValue, int nType){	char szStrbuf[1024];	ASSERT(buf != NULL && pValue != NULL);	ASSERT(Strstu.filedlen != NULL && Strstu.filedaddr != NULL);	ASSERT(nIndex >=0 && nIndex < Strstu.nAmount);	memset(szStrbuf, 0, sizeof(szStrbuf));	/* 拷贝数据域原始信息 */	strncpy(szStrbuf, Strstu.filedaddr[nIndex],Strstu.filedlen[nIndex]);	TrimString(szStrbuf);		/* 清除原始数据首尾的空格 */	/* 转化数据类型并回传数据信息 */	switch (nType)	{		case STRINT :			/* 整型 */			*(int *)pValue = atoi(szStrbuf);			break;		case STRDOUBLE:			/* 浮点型 */			*(double *)pValue = atoi(szStrbuf);			break;		default:			/* 缺省为字符型 */			strcpy((char *)pValue, szStrbuf);			break;	}	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -