此代码将替换所有字符。不只是元音。我在做什么错了?
using namespace std;
bool isVowel(char);
int main() {
string fName = "";
string lName = "";
cout << "Enter first name: " << endl;
cin >> fName;
cout << "Enter last name: " << endl;
cin >> lName;
string name = fName + " " + lName;
cout << name << endl;
for(int i = 0; i < name.length(); i++) {
if(isVowel(name.at(i))) {
name[i] = 'z';
}
}
cout << name << endl;
}
bool isVowel(char c) {
if(c == 'a' || 'e' || 'i' || 'o' || 'u' || 'A' || 'O' || 'E' || 'I' || 'U') {
return true;
}
else {
return false;
}
}
我在线上进行了一些研究,我认为我的问题在于我要通过角色作为参考吗?我不知道那怎么可能...
isVowel()函数检查char是否是元音,我认为这是问题所在,因为程序正在替换所有字符(我假设该函数不起作用)。
答案 0 :(得分:2)
您需要将if语句放置为open
,即当前书写方式,它将所有字符自己转换为布尔表达式。