strtok在c中返回int类型

时间:2017-03-26 17:11:18

标签: 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值?解决方案是什么?

1 个答案:

答案 0 :(得分:1)

它正在使用strtok的隐式原型。您需要#include <string.h>(您可能还需要在stddef.h中加入NULL,并且stdio.h也应包含printf