一、通过将分割后的字符串拷贝到一个二维数组中,函数声明如下:
int SplitString(char *pInStr, int nSep, char ppRes[][MAX_FIELD_LEN+1], int nMaxNum);
二、通过将源串在分割符处做处理,将分割符置成0;定义一个二级指针指向一阶指针数组,每个数组元素源指向源串每一小段的首地址。如下
int SplitString(char *pInStr, int nSep, char **ppRes, int nMaxNum)
{
int i;
char *pBegin;
char *pSep;
if(pInStr == NULL)
return 0;
ppRes[0] = pInStr;
pBegin = ppRes[0];
for(i=1; i<=nMaxNum; ++i)
{
pSep=strchr(pBegin, nSep);
if(pBegin != NULL && pSep != NULL && pSep >= pBegin)
{
*pSep = 0;
pBegin = pSep + 1;
if(i<nMaxNum)
ppRes[i] = pBegin;
}
else
{
break;
}
}
return i;
}