strtok return c 中的 int 类型
strtok return int type in c
当我运行这段代码时,它给出了一个分段错误。
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
return 是一个 int 值?解决方法是什么?
它正在使用 strtok
的隐式原型。您需要 #include <string.h>
(您可能还需要为 NULL
添加 stddef.h
,并且还应为 printf
添加 stdio.h
)。
当我运行这段代码时,它给出了一个分段错误。
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
return 是一个 int 值?解决方法是什么?
它正在使用 strtok
的隐式原型。您需要 #include <string.h>
(您可能还需要为 NULL
添加 stddef.h
,并且还应为 printf
添加 stdio.h
)。