c - strtok在c中返回int类型

标签 c strtok

当我运行这段代码时,它给出了一个段错误。

main ()
{
    char *line ="2,3,22";
    int size=3,i,j; 
    double value; 
    char *val;

    for (i = 0; i<size ; i++) {
        if (line == NULL) break;
        printf("%s\n",strtok (line ,","));
    }
}

并给了一个

"warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat=]
 printf("%s\n",strtok (line ,","));"

因此,当我将 strtok 值分配给 char* 时,它给出了一个错误。为什么 strtok 返回一个 int 值?解决方案是什么?

最佳答案

它使用 strtok 的隐式原型(prototype).你需要 #include <string.h> (您可能还需要为 stddef.h 添加 NULL,并且还应为 stdio.h 添加 printf

关于c - strtok在c中返回int类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43031926/

相关文章:

c++ - Strtok 在行尾返回额外的数据

c - 使用 strtok 在 C 中解析字符串

c - 重定向标准输入

c++ - 使用 netlink 获取进程 inode

c - 指向指针的指针在树复制算法中不起作用

c - 我在使用 strtok 和 fgets 从文件中读取字符时遇到问题

c - 当第一个标记为空时需要 strtok 函数的帮助

c - 我们为什么需要存储分配?

c++ - ATL 中的 CImage 类

c - strtok 不打印字符串的所有部分