- 论坛徽章:
- 3
|
自定义一个字符串分割函数:
void msg_str_split( char *arr[], const char *str1020, const char *delim)
{
char *s =NULL;
char str[1024]={0};
size_t x0=strlen(str1020);
if(x0>1020)
{
strncpy(str, str1020, 1020);
}
else
{
strncpy(str,str1020,x0);
}
s=strtok(str,delim);
while(s != NULL)
{
*arr++ = s;
s = strtok(NULL,delim);
}
}
main()
{
char *str[128]={0};
char *src="abc,def,,gh"; //中间有两个","紧挨一起,中间无空格,相当于“空的”
msg_str_split(str,src,",");
}
-----------------
原本想要的结果是:str[0]="abc",str[1]="def",str[2]="",(空串)str[3]="gh";
而实际得到的却是:str[0]="abc",str[1]="def",str[2]="gh"; //自动将两个逗号间的 空 忽略了。
如何调用strtok才能让两个逗号的空值也做为一个串被分割 ?
谢谢!
|
|