c中的strtok返回int类型
当我运行这段代码时,它给出了一个分段错误c中的strtok返回int类型,c,strtok,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 ,",")); } } 所以当我给char*赋值时,它给出
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 ,","));
}
}
所以当我给char*赋值时,它给出了一个错误。为什么
strtok
返回一个int值?解决方案是什么?它使用了strtok
的隐式原型。您需要#包括(对于NULL
,您可能还需要包括stddef.h
,对于printf
,您还应该包括stdio.h
)
"warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat=]
printf("%s\n",strtok (line ,","));"