HELP PLS!!! STRING
-
Schreiben Sie ein Programm, das eine Textzeile über den Standardeingabekanal cin einliest.
Die Textzeile soll aus einzelnen Wörtern bestehen, die jeweils durch ein Leerzeichen
voneinander getrennt sind. Die Zeile wird durch Eingabe der <RETURN> Taste
abgeschlossen. Die Textzeile könnte z. Bsp. lautenBei schoenem Wetter fruehstuecke ich gerne auf der Terrasse
Geben Sie dann die Zeile Wort für Wort in umgekehrter Reihenfolge aus . Für obiges Beispiel
wäre die Ausgabe dann folgendermassen:ieB meneohcs retteW ekceutsheurf hci enreg fua red essarreT
Geben Sie dann den Buchstaben jedes Wortes in einer einzelnen Zeile wieder in der korrekten
Reihenfolge aus , also
B
e
i
und so weiter für obiges Beispiel.
Kopieren Sie dann alle Wörter der eingegebenen Zeile in einen neuen String direkt
hintereinander (ohne Leerzeichen) und lassen Sie diesen String dann ausgeben, also
BeischoenemWetterfruehstueckeichgerneaufderTerrasse
für obiges Beispiel.Lösungshinweis:
Arbeiten Sie mit dem C++ Standarddatentyp string.bitte ein tip? oder direkt ein programm
-
getline()
string.find()
reverse_iterator oder...void reverse (char* s) { if(*s != '\0') reverse(s+1); cout << *(s); }
-
OMG Leute helft mir, warum funktioniert denn das nicht:
#include <iostream> #include <string> int main () { unsigned int a = 0; std::string text = ""; std::string ergebnis = ""; getline (std::cin, text); for (int i=text.length ()-1; i>=0; i--) { ergebnis [a++] = text [i]; std::cout<<text [i]; //Hier wird korrekt in umgekehrter Reihenfolge das Wort ausgegeben !? } std::cout<<ergebnis; // .... und hier garnichts ! getchar (); }
-
mikey bist du blups
?bzw. was heißt hier nichts ?
kanns mir grad nicht selber angucken weil mein compiler grad noch nicht installiert ist xD
-
Hi Stelfer,
der String, der das Ergebnis erhalten sollte, ist komplett leer, also es erscheint nichts auf dem Bildschirm.
-
#include <iostream> #include <string> int main () { unsigned int a = 0; std::string text = ""; std::string ergebnis = ""; getline (std::cin, text); for (int i=text.length ()-1; i>=0; i--) { ergebnis+= text [i]; //probiers mal so std::cout<<text [i]; //Hier wird korrekt in umgekehrter Reihenfolge das Wort ausgegeben !? } std::cout<<ergebnis; // .... und hier garnichts ! getchar (); }So sollte es funktionieren, denke ich.
Ist aber niht unbedingt nötig. std::copy() zusammen mit std::string.rbegin() und std::string.rend() sollte reichen.
Ansonsten wäre ein close angebracht... Das da ist doch irgendwie mal wieder reines Hausaufgabenschnorren. "Oder gleich ein ganzes Programm" wie willst du denn bitte etwas lernen wenn wir deine Hausaufgaben für dich machen...