我正在编写一个基本程序来计算字符串的元音。我想尝试使用bool函数测试每个字符是否为元音,但是每当我输入带有元音的字符串时,它都不会增加vowels
int。
#include <iostream>
using namespace std;
bool isVowel(char){
char chara;
return (tolower(chara) == 'a' || tolower(chara) == 'e' ||
tolower(chara) == 'i' || tolower(chara) == 'o' ||
tolower(chara) == 'u' || tolower(chara) == 'y');
}
int main()
{
string input;
int vowels = 0;
cin >> input;
for(unsigned int i = 0; i<input.length(); i++){
if( isVowel(input.at(i)) )
vowels++;
}
cout << "Including a, e, i, o, u, and y, that word contains " << vowels << " vowels.\n";
}
例如,当我在控制台中输入“hello”作为输入时,
vowels
整数的值为0。我的函数出了什么问题? 最佳答案
您弄错了函数参数的语法,并且无意间写了一些合法的东西,但是没有按照您的预期去做。这样写
bool isVowel(char chara) {
return chara == 'A' || chara == 'E' ||
chara == 'I' || chara == 'O' || chara == 'U' || chara == 'Y' ||
chara == 'a' || chara == 'e' || chara == 'i' || chara == 'o' ||
chara == 'u' || chara == 'y';
}
关于c++ - 为什么我的函数无法确定字符是否为元音?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53803414/