c - Strtok 分隔所有空格

标签 c string strtok

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

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/

相关文章:

c - 一次只从 strtok 获取一个 token

c - 保存字符串直到找到最后一个分隔符 - C

c - 餐厅模拟

c - 为什么程序不读取第二个参数文件?

javascript - 如何实现parseFloat

c - 读取用户输入并检查字符串

c - 标记字符串并将其作为数组返回

android ion, ION_IOC_IMPORT 的 ioctl 返回 <0, errno = 9

c++ - for循环表现怪异

c++ - 如何从 std::string 执行 "getline"?