您的位置:首页 > 编程语言 > C语言/C++

c语言字符串分割函数mysplit,可处理多个空格

2016-10-28 13:02 387 查看
以参数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”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: