我正在编写一个基本程序来计算字符串的元音。我想尝试使用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';
}