如何检查用户是否输入了元音字符?

How can I check if user entered vowels characters?

本文关键字:输入 字符 是否 用户 何检查 检查      更新时间:2023-10-16

我编写了一个程序来获取用户输入并检查用户是否输入了元音字符。(这些字母是英语的元音:A,E,I,O,U,有时是Y,也有小写字母。

我的问题是我无法检查用户是否输入了例如"a"和"A"。

我收到此错误:

案例标签值已出现在第 13 行的此开关中。

我的程序:

#include <iostream>
int main()
{
int i = 0;
char myString[100];
std::cout << "Enter a String "; std::cin >> myString[100];
if (std::cin.fail()) {
std::cout << "Invalid Input!";
} else {
switch (myString[100])
{
case 'a' || 'A':
i++;
break;
case 'e' || 'E':
i++;
break;
case 'i' || 'I':
i++;
break;
case 'o' || 'O':
i++;
break;
case 'u' || 'U':
i++;
break;
}
}
return 0;
}

你误解了表达式'a' || 'A'的值是什么!这是对'a''A'是否为 TRUE(即非零(的逻辑测试。由于它只涉及常量,因此它将在编译时计算为值1, - 所有其他case值也是如此。因此错误。

您需要的是,而不是:

case 'a' || 'A':
i++;
break;

用:

case 'a':
case 'A':
i++;
break;

其他字母也是如此。(如果您愿意,可以将两个case检查放在同一行上。