【发布时间】:2017-07-08 00:31:31
【问题描述】:
我正在使用 strtok() 函数将字符串拆分为 Tokens。问题是当行中有 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,你可以使用它。 -
您也可以查看I need a mix of
strtok()andstrtok_single()的想法。有许多与那里相关的问题也可能有所帮助。您不是第一个遇到此类问题的人。