如果我删除strtok的while循环,则外部while循环可以继续直到我键入exit。但是外部的while循环与内部的strtok循环一起中断。我不知道为什么会这样。
#include <stdio.h>
#include <stdlib.h> // For exit() function
#include <unistd.h>
#include <string.h>
#include <sys/wait.h>
#include <memory.h>
#include <stdlib.h>
int main()
{
char input[1024];
fgets(input,1024,stdin);
do
{
printf("%s\n",input);
char* token = strtok(input, " ");
while (token) {
printf("%s\n", token);
token = strtok(NULL, " ");
}
fgets(input,1024,stdin);
}while (strcmp(input, "exit\n") == 1);
return 0;
}
答案 0 :(得分:0)
代替这些陈述
fgets(input,1024,stdin);
}while (strcmp(input, "exit\n") == 1)
写下以下内容
}while ( fgets(input,1024,stdin) != NULL && strcmp(input, "exit\n") != 0 );
如果两个字符串不相等,函数strcmp
可以返回任何非零值。