如果字符串包含某个单词,我正在尝试创建一个从scanf输出ENTIRE字符串的程序。为什么如果scanf的输入中有空格,如果输入包含单词,程序只输出特殊字而不输出整个字符串?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char inputString[40];
char *word = "azir";
int exit = 1;
while(exit != 0){
scanf("%s", &inputString);
exit = stricmp("exit", inputString);
if(strstr(inputString, word) != NULL)
printf("%s\n", inputString);
}
return 0;
}
答案 0 :(得分:4)
而不是scanf()
,使用fgets()
来获取整行。 scanf()
会在查找字符串标记时忽略空格(即使这样只会读到该行的空白的下一位),fgets()
将获取所有内容并包括该行上的EOL字符