我有一个非常大的if语句,它看起来不讨人喜欢,也没有尽可能的高效。
我正在制作一个程序(取决于用户的输入)运行一个特定的代码块,例如,如果用户输入'a'程序运行一个向文件添加内容的代码等等。顺便说一下,这是一个do-while语句(我不知道这是否相关)。

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

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

最佳答案

嗯,不管怎样,这都是个好例子。
为什么不使用strchrstrchr返回指向字符串中某个字符的指针(如果找到),否则为空。

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

08-06 07:20