Ich habe die Aufgabe bekommen, einen String in C++ einzulesen und anschließend in umgekehrter Reihenfolge wieder auszugeben.
Beispiel: "Hallo" --> "ollaH"
Könnte mir jemand sagen, wo mein Fehler in der Logik ist?
Ich weiß, ich könnte die Aufgabe so lösen, wenn ich die for-Schleife einfach umstelle, aber leider hat mich der Ehrgeiz gepackt und möchte Sie in der Form meines Ansatzes lösen.
(Alle Bibliotheken sind eingebunden)
int main (void)
{
string s;
cin >> s;
size_t i;
int h;
cout << s << endl;
for (i=0; i < s.length(); i++) {
s[s.length() - i] = s[s.length() + 5];
s[i] = s[s.length() - i];
s[s.length() + 5] = s[i];
}
cout << s << endl;
return 0;
}
Meine Denkweise: Mit dem Beispiel "Hallo" --> H=0, a=1, l=2, l=3, o=4
Die letzte Ziffer meines Strings speichere ich zwischen auf eine Stelle irgendeine Stelle (hier 5). Danach setze ich die Ziffer an der Stelle i ganz nach hinten - i.
Stelle 0 = 4, Stelle 1 = 3, Stelle 2 = 2, Stelle 3 = 1, Stelle 4 = 0
Danach setze ich die zwischengespeicherte Stelle auf den Platz i.