如何比较C中的多个字符串

时间:2015-11-29 01:25:04

标签: c arrays compare string-comparison strcmp

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun1(void);
void func1()
{
  printf("Function1 executed \n");
}
int main()
{
  char syscom[256];
  char check[] = "cmd";
  do 
  {
    printf("Enter function : ");
    fflush (stdout);
    scanf("%255s",syscom);
    int numb;
    numb = strcmp("funct1",syscom);
    printf("%d\n",numb);
    if (numb == 1)
    {
      func1();
    }
  }while(strcmp("quit",syscom) != 0);
  return 0;
}

由于某种原因,strcmp在do-while循环中运行良好,但在实际循环中,您可以选择返回1的函数。例如,在Enter函数部分中,即使键入随机字符串,它也会生成1而不是0,就像我想要的那样。我知道c ++会使这个程序变得轻而易举,但我希望这个可以在c。

所以我把标题作为多个字符串,因为程序将具有多个功能,这些都没有包括在内,因为我不知道如何在多个函数上使用strcmp。

1 个答案:

答案 0 :(得分:1)

改变这个:

numb = strcmp("funct1",syscom);
printf("%d\n",numb);
if (numb == 1) {
  func1();
}

到此:

numb = strcmp("funct1",syscom);
printf("%d\n",numb);
if (numb == 0) {
  func1();
}

下次发帖时,请先查看ref

  

返回一个整数值,表示字符串之间的关系:   返回值表示:

  1. &lt; 0不匹配的第一个字符在ptr1中具有较低的值 而不是在ptr2
  2. 0两个字符串的内容相等
  3. &gt; 0不匹配的第一个字符在ptr1中的值大于在ptr2中的值