int main ()
{
char str[] ="kk,12,,23,4,,,3434,3,33,,,";
char * valarr;
int count=0;
valarr = strtok(str,",");
while(valarr != '\0')
{
valarr = strtok(NULL,",");
count++;
}
printf("%d\n",count);
return 0;
}
在上面的程序中,输出是 7。
看来 strtok 正在一次标记连续的逗号。
我可以在中间引入一个空格,而不是连续的逗号,但是
有没有办法克服这个问题,以便我在计数中也有空白空间?
正确的。文档非常清楚地说明了这一点:
已解析字符串中两个或多个连续分隔符的序列被视为单个分隔符。
就是这样strtok()
应该可以工作。你可能最好自己动手,这也能让你摆脱strtok()
的肮脏。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)