strings zusammenfügen
-
Was fehlt, damit sowas funktioniert.
const char* feld[] = { "feld1", "feld2", "feldN", (char*)0 }; vector<string> ergebnis; string s; s.push_back( *feld++ ); // hier kommen noch ein paar mal push_back ergebnis.push_back( s );und das funktioniert gar nicht - obwohl ich nicht nachvollziehen kann wieso.
*feld sollte von Typ const char* sein, was mit push_back gehen sollte.
Was fehlt da?
-
Was da fehlt? Die Fehlermeldung...
-
http://www.cplusplus.com/reference/string/string/push_back/
Also ich sehe da nur char als mögliches Argument, nicht char*.
einfache Abhilfe: Stringstream
stringstream s; s << dein_erster_nullterminierten_char_zeiger; s << dein_zweiter_nullterminierten_char_zeiger; // ... ergebnis.push_back( s.str() );
-
Einfacher ist natürlich einfach den += operator zu verwenden.
-
Fellhuhn schrieb:
Einfacher ist natürlich einfach den += operator zu verwenden.
Manchmal denke ich zu kompliziert. Es gab in letzter Zeit einfach zu viele Threads in denen nach der Addition von ints und Cstrings gefragt wurde, da war der Stringstream immer die passende Antwort.
-
Je nachdem was er wirklich machen will ist ein stringstream sicher auch keine schlechte Wahl. Vor allem von dessen Existenz zu wissen kann einem viel Arbeit ersparen.
