【问题标题】:Multiple string comparison多串比较
【发布时间】:2015-03-20 03:33:02
【问题描述】:

我需要将 3 个字符串与 1 个字符串进行比较。
我目前正在使用下面的代码。 seatclass 由用户输入。

 char first[10] = "FC";
 char econ[10] = "EC";
 char eandf[10]= "FC&EC";

     if ((seatclass==first)||(seatclass==econ)||(seatclass==eandf))
      {
      printf("win");
      }
      else
      {      
      printf("This is not a seatclass choose again");
      getchar(); 
      }

但是,当我输入 FC 或任何其他随机值时,我总是得到
This is not a seatclass choose again

【问题讨论】:

  • 这是什么语言?请用适当的语言标记您的问题。
  • 这是C语言
  • 然后更新您的问题并添加“c”标签。顺便说一句,c中的字符串比较是使用strcmp进行的。
  • 你能用 3 个字符串与 1 个字符串相比的代码举例吗
  • 只需使用||,就像您已经在使用的那样。注意c# 不是c!

标签: c string compare


【解决方案1】:

您需要使用 strcmp 在 C 中进行比较。

这里是你可以做的比较:

char first[10] = "FC";
char econ[10] = "EC";
char eandf[10]= "FC&EC";

if (strcmp(seatclass,first)==0 || strcmp(seatclass,econ)==0 || strcmp(seatclass,eandf)==0)
{
    printf("win");
}
else
{
    printf("This is not a seatclass choose again");
    getchar();
}

注意:您可以在 C++ 中使用 '==' 来比较 string

【讨论】:

    【解决方案2】:

    响应是“==”运算符正在比较您的情况下的指针,您应该使用strncmp 函数(from string.h

    【讨论】:

      【解决方案3】:

      "==" 将指向 C 中的数组和字符串的内存地址。您可以使用 strcmp 函数。

      【讨论】:

        【解决方案4】:

        要比较两个字符串,我们可以使用strcmp()strncmp() 函数。

        【讨论】:

          【解决方案5】:

          使用strcmp()函数我们可以比较空洞字符串,使用strncmp()函数我们可以比较字符串的某个特定范围。

          如果字符串相同,两个函数都返回0,否则返回-1 or 1

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-02-19
            • 1970-01-01
            • 2013-08-22
            • 1970-01-01
            • 1970-01-01
            • 2015-06-14
            • 2014-06-03
            • 1970-01-01
            相关资源
            最近更新 更多