Strtok将所有空格分开

时间:2013-11-06 03:15:23

标签: c string strtok

我正在尝试在空格和制表符处拆分字符串。

char * token = strtok(input, " \t");

仅适用于空间。我做错了什么?

1 个答案:

答案 0 :(得分:7)

这是一个示例,说明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.