比较两个以上的字符串

时间:2016-03-28 10:04:59

标签: c string avr

我有5个字符串。我需要同时主持所有五个人。

char set_password1[5] = "1111";
char set_password2[5] = "2222";
char set_password3[5] = "3333";
char set_password4[5] = "4444";
char set_password5[5] = "5555";

if(!strcmp(Entered_Password,set_password1))
{
}

如果这些密码中的任何一个与Enter _Password匹配,我需要做点什么。所以我必须写出五个这样的陈述

if(!strcmp(Entered_Password,set_password1))
{
}
if(!strcmp(Entered_Password,set_password2))
{
}
if(!strcmp(Entered_Password,set_password3))
{
}
if(!strcmp(Entered_Password,set_password4))
{
}
if(!strcmp(Entered_Password,set_password5))
{
}

还是有其他办法。 我已经尝试过这种方式,但它没有用。

if(!strcmp(Entered_Password, (set_password1||set_password2||set_password3||set_password4||set_password5))
{
}

2 个答案:

答案 0 :(得分:2)

或者,您可以使用2D数组。

char password[5][5] = {"1111", "22222", "3333", "44444", "55555"};
int match = 0;

for(int i = 0; i < 5; i++)
{
  if(strcmp(password[i], user_password) == 0)
  {
     match = 1;
     break;
  }
}

if(match == 1)
{
  //do your action
}

答案 1 :(得分:-2)

替换行

if(!strcmp(Entered_Password, (set_password1||set_password2||set_password3||set_password4||set_password5))

if (!(strcmp(Entered_Password, set_password1) && strcmp(Entered_Password,set_password2) && (strcmp(Entered_Password,set_password3) && strcmp(Entered_Password,set_password4) && strcmp(Entered_Password,set_password5)))

您必须将每个变量与初始字符串分开比较。