スペースとタブで文字列を分割しようとしています。
char * token = strtok(input, " \t");
スペースに対してのみ機能します。私は何を間違っていますか?
strtok() がタブまたはスペースで機能することを示す例を次に示します。重要なのは、strtok() の最初の呼び出しを除くすべての呼び出しで NULL を渡すことです。
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char buffer[1024];
int rv = sprintf(buffer, "a string\ttokenize.");
char *token = strtok(buffer, " \t");
int i = 0;
printf("cnt token\n");
printf("==========\n");
while (token) {
printf("%2d %s\n", i++, token);
token = strtok(NULL, " \t");
}
return 0;
}
上記のプログラムからの出力は次のとおりです。
cnt token
==========
0 a
1 string
2 tokenize.