Anfängerfrage zu strings
-
hallo Community,
ich hab ein Problem und weiß nicht welches. Warum bekomm ich bei diesem Programm keine Ausgabe?!?#include<iostream> #include<string> using namespace std; int main() { string str_1; string str_2; str_1 = "hallo Chef"; int i=0; while (str_1[i] != 'o') { str_2[i] = str_1[i]; i++; } cout << str_2; //Diese Ausgabe kommt einfach nicht return 0; }ich will den Teil eines Strings in einen neuen string kopieren. Wenn ich char-arrays nehme gehts, aber ich will strings weil mir das die weitere verarbeitung leichter macht. Was muß ich verändern?
Danke im voraus
Phil
-
#include<iostream> #include<string> using namespace std; int main() { string str_1; string str_2; str_1 = "hallo Chef"; int i=0; while (str_1[i] != 'o') { str_2 += str_1[i]; i++; } cout << str_2; //Diese Ausgabe kommt einfach nicht return 0; }
-
Hallo
Du must daran denken, das du bei str_2 auf Elemente zugreifst, die gar nicht vorhanden sind. Was glaubst du wohl, wieviele Elemente (also Chars) str_2 nach der Deklaration hat?
Und das Kopieren kannst du auch einfach so machen:
#include<iostream> #include<string> using namespace std; int main() { string str_1; string str_2; str_1 = "hallo Chef"; str_2 = str_1; // Wert übergeben cout << str_2; //Diese Ausgabe kommt einfach nicht return 0; }bis bald
akari
-
danke für die schnellen Antworten!
die erste Antwort klappt. So kann ich zumindest schonmal meinen Teilstring in einen neuen String kopieren.
@akari
Du hast mich falsch verstanden. Es geht mir nicht drum einen ganzen String zu kopieren. Das bekomm ich noch hin
Ich will nur den Teil eines Strings in einen andern kopieren. Und am liebsten würde ich auch noch fest legen ab wo die Kopie eingefügt wird. z.B. string1: hallo Chef
Wie schaff ich es jetzt ein anderes Wort (z.B. "Meister") über das Wort Chef drüberzukopieren ohne das Wort "hallo" anzurühren?
-
schau dir mal string::replace() und Konsorten in deiner bevorzugten C++-Referenz an.
geloescht
-
Hallo
schau dir mal die Methoden der string-Klasse an, insbesondere find() und substr().
bis bald
akari
-
Wie kann man einen string komplett in großbuchstaben umwandeln?
Also von "Hallo Welt" zu "HALLO WELT".
Und wie komplett zu kleinbuchstaben. Gibt es da fertige Funktionen. In Delphi z.B: Uppercase(String);
-
-
toupper (und tolower zur Umwandlung in Kleinbuchstaben) arbeiten auf einem einzelnen Zeichen - aber du kannst sie gerne per for()-Schleife oder std::transform auf jedes Zeichen deines Strings loslaufen lassen.