C++ std::string zwischen zwei Zeichen löschen?
Hallo,
Ich habe in C++ einen std::string der den Wert " Hallo ' Welt ' ' TEST ' test2 " hat. Ich möchte nun alles Text aus diesen String ohne Regex entfernen so dass der Wert des Strings am Ende so aussieht: "Hallo test2 " Wie kann ich das machen?
LG
Beispiel 2: Wenn ich den String habe "Hallo $Welt$ test $TEST2$" und als delimeter "$" benutze soll der String am Ende so aussehen: "Hallo test "
Mir hat leider keiner geantwortet aber nach sehr viel recherchieren konnte ich zum Glück selbst eine Lösung finden:
std::string ChangeString(std::string test) {
bool inbracket = false;
std::string outStr;
for (size_t i = 0; i < test.size(); ++i)
{
char ch = test[i];
if (ch == '\'') //Anfangszeichen
inbracket = true;
else
if ( ch == '\'') //Endzeichen
inbracket = false;
else
if ( !inbracket )
outStr += ch;
}
test = outStr;
return test;
}
1 Antwort
Ein RegExp wäre hier vermutlich am einfachsten in der Umsetzung, sonst müsstest Du halt zu Fuß splitten und zusammenfügen.
Ergänzung:
Mit std::string::erase(start,len) lässt sich ein Teilstring entfernen. Mit der find*-Familie an Methoden lassen sich Positionen ermitteln.