c - 使用 strtok [C] 时获取 Null 值

标签 c strtok

我正在从事一个涉及使用 strtok 的项目,由于某种原因,我得到的是空值而不是实际值(应该是“二”和“三”)。这是我的代码:

int main(){
    int h,z;

    char text[100] = "One Two Three";

    for(h = 0; h < 4; h ++){

        char *first = strtok(text, " ");
        printf("%s\n",first);

        for(z = 0;  z < 3; z++){
            char *second = strtok(NULL,  " ");
            printf("%s\n",second);


        }
    }
    return 0;
}

我得到的输出是:

One
Two
Three
One
(null)
(null)
One
(null)
(null)
One
(null)
(null)

我该怎么做才能获得正确的值 TwoThree 而不是 null?

最佳答案

您可以标记字符串,将其保存在双指针中并打印任意多次!

关于c - 使用 strtok [C] 时获取 Null 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46594554/

相关文章:

c - 我的 URI Online Judge 中第 1021 号问题(初学者)的代码有什么问题?

c - 整数到字节数组 Little Endian,反之亦然

C++如何将字符串转换为char *

c - strtok() 函数在 C 中无法正常工作

c - 使用 fscanf 读取制表符分隔的记录

c - 我对 fgets() 和 strtok() 的使用对于解析多行输入是否不正确?

c - 为什么我的作业有逻辑错误?

c - 如何使用RL_ARM lib来设计TCP项目

c - 不建议在 fork 时执行外部程序

c - C中String tokenizer的奇怪行为