我的程序的目的是从用户输入获取一个字符串,删除并计算所有元音。此外,该程序将继续运行,直到他们达到" ---"结束该计划。但是,我被困住了,无法弄清楚我的程序有什么问题。例如:如果用户输入:"你好吗?",输出应该是:" 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;
}
答案 0 :(得分:2)
if (sentence = "---")
break;
这是一项任务。这将永远发生,它将永远是真实的。因此你的循环什么都不做。
等式比较运算符是==
,而不是=
。
另外,您撰写的是sentence[j] == "e"
而不是sentence[j] == 'e'
,而您写的是sentence == "A"
而不是sentence[j] == 'A'
。