Ich habe ein C++ - Programm, das alle Vokale in einer Zeichenfolge gibt und löscht. Das einzige Problem ist, es funktioniert nicht und ich kann den Grund nicht finden. Ich muss 2 Funktionen verwenden, die alle Vokale entfernt und ein anderes, das bestimmt, wenn ein Zeichen ein Vokal ist und das alles sollte in einer Schleife funktionieren.Programm, das Vokale liest und löscht sie nicht ordnungsgemäß ausgeführt
Dies ist mein Code:
#include <iostream>
#include <string>
using namespace std;
bool isA_Vowel(string s);
string remov(string s);
int main()
{
string s;
string ans = "y";
while((ans == "Y") || (ans == "y"))
{
cout << "Please enter a word or a series of letters: ";
cin >> s;
cout << "Old: " << s << endl;
cout << "New: " << remov(s) << endl;
cout << "Would you like to go again? <y/n> ";
cin >> ans;
}
}
bool isA_Vowel (string s)
{
if (s == "a" || s == "e"|| s == "i" || s == "o" || s == "u" || s == "A"
|| s == "E" || s == "I" || s == "O" || s == "U")
{
return (true);
}
else
{
return (false);
}
}
string remov(string s)
{
for (unsigned int i = 0; i < s.length(); ++i)
{
if (isA_Vowel(s))
{
s.erase(i,1);
}
}
return(s);
}
ich es vor der Arbeit hatte, aber jetzt wird es nicht richtig laufen und alle Vokale löschen. Irgendwelche Vorschläge oder Tipps wären toll! Vielen Dank im Voraus!
Schritt durch Ihren Code mit dem Debugger. –
Nun wäre dies eine gute Gelegenheit, sich mit einem Debugger vertraut zu machen. Das Problem sollte ziemlich offensichtlich sein, wenn Sie den Code durchgehen. –
Hinzufügen zu dem, was die beiden über mich sagten, sollten Sie dies ein Fall machen und keine if-Anweisung. Wenn du einen weiteren Versuch machst, werde ich dir einen besseren/einfacheren Weg zeigen, dies zu tun ...Aber nur, wenn du ein bisschen mehr versuchst, weil du ehrlich gesagt nicht weit weg bist :) – Afflicted