如何使用嵌套的 if 语句检查字符数组
how to check char array with nested if statement?
正如您可能能够告诉我的那样,我试图引入一个计数器来表示某个字符串中有多少辅音,但输出始终为 50,除非涉及空格。
int main(){
char input[50];
int total = 0;
cout << "Enter a string of no more than 50 charactersn";
cin.getline(input,50);
for(int n = 0; n<50;n++){
if(input[n]!='a',input[n]!='A',input[n]!='e',input[n]!='E',input[n]!='i',input[n]!='I',input[n]!='o',input[n]!='O',input[n]!='u',input[n]!='U',input[n]!=' ')
total++;}
cout << total << endl;}
根据维基百科,逗号运算符定义如下
在 C 和C++编程语言中,逗号运算符 (由令牌表示)是一个二进制运算符,用于计算其 第一个操作数并丢弃结果,然后计算第二个操作数 操作数并返回此值(和类型)。
在您的情况下,您应该使用逻辑 AND (&&) 而不是逗号操作。更高效,您可以像这样重写代码
char c = tolower(input[n]);
if (c >= 'a' && c <= 'z' && c != 'a' && c != 'e' && c != 'i' && c != 'o' && c !='u')
total++;
它将包括所有情况。
正如每个人都清楚地解释的那样,您需要使用 && 运算符来确保检查所有条件。
if(input[n]!='a' && input[n]!='A' && input[n]!='e' && input[n]!='E' && input[n]!='i' && input[n]!='I' && input[n]!='o' && input[n]!='O' && input[n]!='u' && input[n]!='U' && input[n]!=' '){
total++;
}
避免多次检查的一个建议:将字符提取到转换为小写或大写的变量。
char c = input[n] | 32;
关于使用的",";该程序可能会提供更多见解以及共享的WIKI:
void main(){
int a=-1;
if(++a,a, a++){ // Works like "||"
printf("Yes %d",a);
}else {
printf("NO %d", a);
}
}
输出:否 1
相关文章:
- 在做一段时间内检查字符的无限循环
- 在编译时检查字符的唯一性
- 如何使用C 在.TEXT文件中检查字符序列
- 如何检查字符常量是否符合ASCII
- 错误 ~ 检查字符是否为小写字母
- C++ 使用 || 检查字符是否不在字符串中不工作
- 使用特定格式检查字符数组值
- 如何检查字符是否是某个字母表中的字母
- 检查字符是否等于 C++ 中的
- 如何检查字符是否在范围内
- 如何使用嵌套的 if 语句检查字符数组
- 检查字符中的空白和字符串中的数字
- 如何在c++中检查字符的unicode值的范围
- 检查字符数组的所有元素
- C++ 如何使用 _getch() 实时检查字符
- 检查 字符,但之后不检查
- 检查字符是否为换行符
- 检查字符设备
- 检查字符是否为单引号.c++
- 如何检查字符是否在给定的字符范围内