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是一次标记连续的逗号。
我可以在中间引入一个空格,而不是连续的逗号,但是有没有办法克服这个问题,让我在计数中也有空格呢?
发布于 2013-01-16 17:09:03
对,是这样。The documentation非常清楚地说明了这一点:
在解析的字符串中,由两个或多个连续的分隔符字符组成的序列被视为单个分隔符。
这就是strtok()应该如何工作的。你最好自己滚动,这也会让你从strtok()的丑陋中解脱出来。
发布于 2013-01-16 17:08:16
简短的回答:不,至少使用strtok,check this来了解什么对你的应用程序更好。
https://stackoverflow.com/questions/14354622
复制相似问题