String umkehren ?
-
temp_str.resize(str.length());
-
Glamdrink schrieb:
int n = (strlen(eing.c_str()) - 1);
Autsch. Sowas tut doch weh.
-
#include<string> #include<iostream> using namespace std; // String umkehren string str_reverse(const string & str) { // temp-String erzeugen string temp; // originalen String von hinten nach vorne durchlaufen // und in temp speichern for (int i=str.length()-1; i>=0; i--) { temp +=str[i]; } // umgekehrten String zurückgeben return temp; } int main() { // String erzeugen string str; // eine Zeile auslesen cout << "Schreiben Sie einen Satz: "<<endl; getline(cin, str); // umkehren lassen string reverse = str_reverse(str); // rückwärts ausgeben cout<<"von hinten: "<<endl; cout<<reverse<<endl; return 0; }
-
Schreiben Sie eine Funktion void str_reverse(string& str), die die Reihenfolge der Zeilen im String str umkehrt!
void str_reverse(string& str) { int slength = str.length()-1; for(int i=0; slength/2>=i; ++i) { char temp = str[i]; str[i] = str[slength-i]; str[slength-i] = temp; } }
Ich sehe in der Aufgabenstellung nichts von ausgeben, hier die variante die tatsächlich den String umkehrt.
Gruß Mirauder Mo
-
Hallo,
war spricht eigentlich hier gegen:
... string reverse(str.rbegin(), str.rend()); ...
-
Ihr seid sehr fleißig
Erstmal danke euch allen für die Beispiele und Shade dir für den Hinweise, werd ich mir merken
Das Einzige was bei mir funktioniert, ist das von Glamdrink *g*@CarstenJ,
deine Lösung hab ich hier schon im Forum gefunden, nur leider will die bei mir nicht funktionieren. Ich krieg jedesmal beim Compilieren eine Fehlermeldung angezeigt - weiss jetzt leider nicht mehr welche genau das war.Xecutor
-
CarstenJ schrieb:
war spricht eigentlich hier gegen:
... string reverse(str.rbegin(), str.rend()); ...
Die Aufgabenstellung?
-
Hallo,
wieso das? Was widerspricht denn dabei der Aufgabenstellung?
-
da steht "Schreiben Sie eine Funktion".
-
Wie die Funktion das bewerkstelligen soll, steht doch da nicht. Wieso kann ich nicht schreiben:
void str_reverse(string& str) { string reverse(str.rbegin(), str.rend()); str = reverse; }
-
CarstenJ schrieb:
wieso das? Was widerspricht denn dabei der Aufgabenstellung?
Die Aufageb hab ich mit dem reverse Algo gelöst, das war nicht das Problem - ich würd die Aufgabe auch gern durch eine Schleife lösen.
-
Ok ok..hast gewonnen. :p