代码不输出整个字符串,而只输出其中的一部分

时间:2014-09-10 20:57:01

标签: c

如果字符串包含某个单词,我正在尝试创建一个从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;
}

1 个答案:

答案 0 :(得分:4)

而不是scanf(),使用fgets()来获取整行。 scanf()会在查找字符串标记时忽略空格(即使这样只会读到该行的空白的下一位),fgets()将获取所有内容并包括该行上的EOL字符