[gelöst] std::string über Referenz befüllen
-
Hallo,
ich habe eine Funktion, welche als Argumente Referenzen auf std::strings erhält und diese mit Ergebnissen ihrer Arbeit füllen soll. Allerdings funktioniert das nicht so ganz. Hier ein kleines Beispiel der beiden auftretenden Fehler:void func(std::string& Text) { Text = "Langer Text"; } main() { std::streng KurzerText = "Kurz"; func(KurzerText); std::string SehrlangerText = "Das Haus steht um die Ecke."; func(SehrlangerText); //Irgendeine Art von Ausgabefunktion für KurzerText und SehrlangerText return 0; }Die Ausgabe wäre dann:
KurzerText: Lang SehrlangerText: Langer Texteht um die Ecke.Der Fehler ist schnell erklärt. Die Funktion mit der Referenz auf den std::string ersetzt in diesem nur die Zeichen auf Länge des bereits enthaltenen Textes bzw. des neuen, falls der enthaltene Text länger war.
Meine Frage ist nun, wie schaffe ich es die std::strings in der Funktion neu zu befüllen, so, dass deren Länge, wie normalerweise auch, dem neuen Inhalt angepasst wird?Ich hoffe jemand kennt das Problem oder weiß auch so Abhilfe.

-
Little Programmer schrieb:
KurzerText: Lang SehrlangerText: Langer Texteht um die Ecke.Normalerweise sollte da
Langer Text Langer Textals Ausgabe für beide Stringobjekte erscheinen, so wie Du das machst. Wie gibst Du das Zeugs denn aus?
-
Kannst du bitte mal vollständigen Code posten? Wenn das stimmen würde, was du sagst, hätte deine Standardlibraryimplementierung einen ziemlich bösen Bug an einer zentralen Stelle. Da sind erstmal Zweifel angesagt.
-