比较输入的字符串

时间:2013-09-23 00:27:51

标签: c

我正在尝试询问用户输入,我需要这样做,以便在用户输入exit时,它会终止程序。

这就是我所拥有的,但由于某种原因它不起作用:

int main(void) {
  char input[100];

  printf("Enter: ");

  while(fgets(input, 100, stdin)) {
    if(strcmp("exit", input) == 0) {
      exit(0);
    }
  }
}

为什么不退出?

3 个答案:

答案 0 :(得分:2)

你正在做所有 ALMOST

问题是“fgets()”返回尾随换行符,并“输入\ n”!=“输入”。

建议:

改为使用strncmpif (strncmp ("enter", input, 5) == 0) {...}

答案 1 :(得分:0)

因为输入包含尾随'\ n'

  while(fgets(input, 100, stdin)) {
    char *p=strchr(input, '\n');
    if(p!=NULL){
        *p=0x0;
    ]
    if(strcmp("exit", input) == 0) {
      exit(0);
    }

答案 2 :(得分:0)

使用scanf()

while(scanf("%s", input)) {
    printf("input : %s\n", input);
    if(strcmp("exit", input) == 0) {
        exit(0);
    }
}