資源簡介
用C語言實現 分隔符報文的解析,例如|1|2|3| 1|2|3 |1|2|3 1|2|3| 這幾種模式都可以成功解析出各個域
代碼片段和文件信息
#include?“public.h“
/*獲得字符串中域的個數以fmt為分隔符*/
int?GetRegionNumByFmt(?char?*sString?char?fmt?)
{
int?i??nNum?=?0;
/*忽略開頭和者結尾的分隔符*/
for(?i=1;?i {
if(sString[i]?==?fmt?)?nNum++;
}
if(?nNum?!=?0?)?return?++nNum;
return?0;
}
/*獲得第nCount域的內容以fmt為分隔符,將獲得的內容填入sStringOutput中*/
void?GetCountRegionByFmt(?char?*sStringInput?char?fmt?int?nCount?char?*sStringOutput?)
{
int?i??nNum?=?0;
char?*sStart?=?NULL;
char?*sEnd???=?NULL;
/*獲得第nCount-1個分隔符的位置開頭和結尾的忽略*/
for(?i=1;?i {
if(sStringInput[i]?==?fmt?)?nNum++;
if(?nCount?==?1?)
{
if(?sStringInput[0]?==?fmt?)?sStart?=?&(sStringInput[1]);
else?sStart?=?&(sStringInput[0]);
break;
}
if(?nNum?==?nCount-1)?
{
sStart?=?&(sStringInput[i]);
sStart++;
break;
}
}
sEnd?=?strchr(?sStart?fmt?);
if(?sEnd?==?NULL?)
{
strcpy(?sStringOutput?sStart?);
return;
}
memcpy(?sStringOutput?sStart?sEnd-sStart);
}
/*獲得字符串中的以fmt為分隔符的第nCount個域返回域的總數*/
int?GetRegionByFmt(?char?*sStringInput?char?fmt?int?nCount?char?*sStringOutput?)
{
int?nTotalRegion?=?0;
char?*sStart?=?NULL;
char?*sEnd???=?NULL;
if(?sStringInput?==?NULL?)?return?-1;
/*獲得字符串中子域的總個數*/
nTotalRegion?=?GetRegionNumByFmt(sSt
- 上一篇:單片機課程設計數字溫度控制器
- 下一篇:MFC用樹控件制作簡單通訊錄
評論
共有 條評論