我有一个使用1 4-18 * * * command
的小程序,如下所示:
strtok
我的输出结果如下:
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] ="1,2,,3,4,5";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str,",");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, ",");
}
return 0;
}
但是当我遇到Splitting string "1,2,,3,4,5" into tokens:
1
2
3
4
5
的连续分隔符时,我需要将空值作为空字符串获取,例如在这种情况下。
即我需要输出为:
分裂字符串&#34; 1,2,,3,4,5&#34;进入代币:
,,
任何补救措施?
答案 0 :(得分:2)
这就是strtok()
的行为方式。引用man page
解析后的字符串中的两个或多个连续分隔符字节的序列被视为单个分隔符。 [...]
您可以使用strchr()
或strpbrk()
找出分隔符的每个匹配项并单独计算。