我正在使用strtok()函数将字符串分割成标记。问题在于当有2个分隔符时。
/* strtok example */
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] ="Test= 0.28,0.0,1,,1.9,2.2,1.0,,8,4,,,42,,";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str,", ");
while (pch != NULL)
{
printf ("Token = %s\n",pch);
pch = strtok (NULL, ", ");
}
return 0;
}
输出结果如下:
Splitting string "Test= 0.28,0.0,1,,1.9,2.2,1.0,,8,4,,,42,," into tokens:
Token = Test=
Token = 0.28
Token = 0.0
Token = 1
Token = 1.9
Token = 2.2
Token = 1.0
Token = 8
Token = 4
Token = 42
有一些简单的方法可以获取所有的标记;我需要知道是否有括号内的内容,因为有时会出现“,,”或“,xxx,”等情况。
谢谢。
strsep
,则可以使用它。 - Some programmer dudestrtok()
andstrtok_single()
来获取一些想法。那里还有许多相关的问题链接,也可能会有所帮助。你并不是第一个遇到这种问题的人。 - Jonathan Leffler