C ++,删除和couting字符串中的所有元音

时间:2016-03-14 19:56:43

标签: c++

我的程序的目的是从用户输入获取一个字符串,删除并计算所有元音。此外,该程序将继续运行,直到他们达到" ---"结束该计划。但是,我被困住了,无法弄清楚我的程序有什么问题。例如:如果用户输入:"你好吗?",输出应该是:" Hw r y?"。 抱歉,作为一个菜鸟,这是我的第一种编程语言,而且我对它很缺乏经验。

=============================================== ==

#include<iostream>
#include<string>

using namespace std;
int main()
{
    cout << "Please enter a sentence" << endl;

    string sentence;

    getline(cin,sentence);

    while (true) {
        getline(cin, sentence);

        if (sentence = "---")
            break;

        int j, a, e, i, o, u;
        for (j = 0; j < sentence.length(); j++)
        {
            if (sentence[j] == "a" || sentence == "A")
            {
                a++;
            }
            else if (sentence[j] == "e" || sentence == "E")
            {
                e++;
            }
            else if (sentence[j] == "i" || sentence == "I")
            {
                i++;
            }
            else if (sentence[j] == "o" || sentence == "O")
            {
                o++;
            }
            else if (sentence[j] == "u" || sentence == "U")
            {
                u++;
            }
            cout << sentence << "number of " << "a :" << a << "e :" << e << "i :" << i << "o :" << o << "u :" << u;
        }
    }
return 0;
}

1 个答案:

答案 0 :(得分:2)

if (sentence = "---")
   break;

这是一项任务。这将永远发生,它将永远是真实的。因此你的循环什么都不做。

等式比较运算符是==,而不是=

另外,您撰写的是sentence[j] == "e"而不是sentence[j] == 'e',而您写的是sentence == "A"而不是sentence[j] == 'A'