Ich möchte, dass meine Zeichenkette Reihenfolge nach Worten umkehrt. Wenn die Zeichenfolge "Cat is running" lautet, sollte "running is Cat" lauten. Hier ist der Code:Wie man die Reihenfolge der Wörter in einer Zeichenkette durch Rekursion umkehrt
#include<iostream>
#include<string>
using namespace std;
void reverseString(string str);
int length, lastLength;
int main() {
string s;
cout << "Enter a string to reverse its words: ";
getline(cin, s);
lastLength = s.length() - 1;
length = lastLength;
cout << "\nThe string in reverse order is ";
cout << endl;
}
void reverseString(string str) {
if (length < 0)
return;
else {
if (str.at[length] == " " || length == 0)
{
if (length == 0)
length = -1;
for (int i = length + 1; i < lastLength; i++)
cout << str.at[length];
lastLength = length - 1;
}
length--;
reverseString(str);
}
}
es einige Fehler der Zeiger und Array zeigt. Ich weiß nicht, wie ich das lösen soll. Jede Hilfe wird wirklich geschätzt! :)
ist es ein Übersetzungsfehler oder Laufzeitfehler oder falsche Ausgabe, Bitte klären Sie!! Ich sehe 'reverseString' nicht in main. – piyushj
Ich würde vermeiden, globale Variablen in der Rekursion zu verwenden, sie machen den Code ziemlich schwer zu lesen/zu analysieren. –
Ihre Schleifeninvariante und ihr Körper sind falsch. Überprüfen Sie, was Sie damit erreichen möchten. –