代码非常简单。我不明白为什么当我尝试打印 pointok2
时我的程序崩溃了。也许我没有看到问题,因为我累了或者什么的。如果有一点帮助,我们将不胜感激。
Tokmain
将始终采用“word word”格式。
scanf("%s",&tokmain);
for(i=0;i<50;i++) {
if (tokmain[i]=='\n') {
tokmain[i]='\0';
lettercount=i;
break;
}
}
pointok1=strtok(tokmain,delim);
pointok2=strtok(NULL,delim);
puts(pointok1);
puts(pointok2);`
最佳答案
scanf()
在空格处截断。所以,当你输入“word word”时,tokmain
只会有“word”。
尝试
scanf("%49[^\n]s",&tokmain); /*Notice the format string*/
for(i=0;i<50;i++) {
if (tokmain[i]=='\n') {
tokmain[i]='\0';
lettercount=i;
break;
}
}
pointok1=strtok(tokmain,delim);
pointok2=strtok(NULL,delim);
puts(pointok1);
puts(pointok2);`
关于c - 为什么 strtok 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20723559/