String Replace
-
Moin,
Ich habe folgendes Problem, ich möchte in meinem String \ durch \\ ersetzen.
Durch googeln bin ich auf die Funktion replace gekommen in meinem Fall:string exe = "C:\folder\folder2"; // Beispiel
exe.replace(exe.find("\"), strlen("\"), "\\\");Doch leider wird nur der erste backslash ersetzt (C:\\folder\folder2).
Wie kann ich wirklich ALLE backslashs ersetzen ?Info: Ich habe bereits etliche Zeit damit verbracht eine Lösung zu finden doch leider will es nicht sorecht.
Vielen Dank,
niroxx
-
1.) boost::algorithm::replace_all
2.)
void replace_all(string &s, const string &a, const string &b) { for (string::size_type i = s.find(a); i != string::npos; i = s.find(a, i + b.size())) s.replace(i, a.size(), b); } aufruf: replace_call(str, "\", " ");cu
-
Wunderbar, dankeschön !
Edit:
Was kann ich mit Schritt 1 anfangen ? Wo einfügen ?
-
Du kannst die Funktion replace_all der Bibliothek Boost verwenden statt dir selbst was zu schreiben.
Hierzu brauchst du natürlich genannte Bibliothek.grüße
-
It seems this forum engine has problems translating between doubleslashes and slashes. I see different number of them in posts in normal mode and when I replay. In normal mode it seemed like some of posts had errors, in replay mode some of errors disappeared...
-
cpp1 schrieb:
1.) boost::algorithm::replace_all
2.)
void replace_all(string &s, const string &a, const string &b) { for (string::size_type i = s.find(a); i != string::npos; i = s.find(a, i + b.size())) s.replace(i, a.size(), b); } aufruf: replace_call(str, "\", " ");cu
ineffizient
-
ich meinte unelegant wegen dem doppelten code für find