如果有陈述,有什么方法可以缩短此时间吗?

Bel*_*sem 1 c if-statement char logical-operators

我有非常大的if语句,看起来不那么令人愉悦,而且效率也不高。

我正在制作一个程序(取决于用户输入)运行某个代码块,例如,如果用户输入'a'该程序运行一个向文件中添加某些内容的代码,等等。声明(我不知道这是否相关)。

else if(ansr != 'a' && ansr != 'A' && ansr != 'r' && ansr != 'R' && ansr != 's' && ansr != 'S' && ansr != 'e' && ansr != 'E')
{
    printf("Invalid input!\n");
}
Run Code Online (Sandbox Code Playgroud)

如您所见,这是一个很长的if语句,我希望它要短一些。谢谢

Ste*_*uan 8

嗯,这是一个例子,随便。

你为什么不使用strchrstrchr返回指向字符串中字符的指针(如果找到),否则返回NULL。

else if (strchr("aArRsSeE", ansr) == NULL)
{
    printf("Invalid input!\n");
}
Run Code Online (Sandbox Code Playgroud)

  • 真不幸。 (5认同)
  • 进行一些重新排序会更有趣。 (3认同)