以参数ch字符分割,分割char数组到char二维数组中,返回词的个数
可处理多个重复ch的情况,无论开头,中间,还是结尾
int mysplit(char *pstr, char(*pcutcmd)[10], char ch)
{
int ret = 0;
if (NULL != pstr && NULL != pcutcmd)
{
char *tempstr = pstr;
int i = 0, j = 0;//i为行,j为列每行为一个字符串
int countrow = 0;
while (*tempstr)
{
if (ch == *tempstr)//遇到空格,词语结束,加\0
{
*(*(pcutcmd + i) + j) = '\0';
}
else if ((ch == *(tempstr - 1)) && (ch != *tempstr))//只有在上一个是空格,这一个不是时数组行 i+1,j=0
{
if (countrow != 0)
i++;
j = 0;
*(*(pcutcmd + i) + j) = *tempstr;
j++;
}
else //非空格写入字符
{
if(0==i)
{
countrow=1;
}
*(*(pcutcmd + i) + j) = *tempstr;
j++;
}
tempstr++;
}
ret = i;
}
return ret;
}
例如
“;
char arrstr[10][255]={0};
mysplit(str,arrstr,’ ‘);
结果:
arr[0]=”1”
arr[1]=”2”
arr[2]=”33”