我正在尝试在空格和制表符处拆分字符串。
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.
关于c - Strtok 分隔所有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19803437/