我想用字符串z中的所有元音替换

时间:2018-11-13 04:20:17

标签: c++ string

此代码将替换所有字符。不只是元音。我在做什么错了?

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是否是元音,我认为这是问题所在,因为程序正在替换所有字符(我假设该函数不起作用)。

1 个答案:

答案 0 :(得分:2)

您需要将if语句放置为open,即当前书写方式,它将所有字符自己转换为布尔表达式。