文字列をトークンに分割するstrtok()関数を使用しています。行内に2つの区切り文字がある場合は問題です。行内に2つの区切り文字がある場合、文字列をCのトークンに分割する
/* 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'](http://man7.org/linux/man-pages/man3/strsep.3.html)を持っているシステムでは、代わりに使うことができます。 –
[strtok()とstrtok_single()]が混在している必要があります(http://stackoverflow.com/questions/30294129/i-need-a-mix-of-strtok-and- strtok-single)も考えています。そこからも多くの質問がリンクされています。このような問題に遭遇したのは初めてのことではありません。 –