letztes element aus string löschen
-
hallo,
ich versuche grade das letzte element aus einem string zu löschen aber irgendwie schmiert das programm dann immer ab...
also ich hab ein string "hallo"" , aber das letzte zeichen ist ein " und das soll weg. also will ich aus "hallo"" (mit gänsefüßchen) "hallo" (ohne das gänsefüßchen am Ende) machen.
mein ansatz war:
for (UINT i = 0;i< neu.size();i++) { if (neu[i] == '\"') { neu.erase(neu[i]); } else { } }kann es sein das der auf eine nicht existente stelle im array zu greift?? aber ich hab das auf 10 verschiedene arten ausprobiert der will das nicht machen

hilfe ^^
-
Schau dir doch mal erase an:
http://www.cplusplus.com/reference/string/string/erase/Du musst da einen Iterator oder eine Position übergeben. Bei Dir wird das Zeichen '\"' implizit in ein size_t konvertiert was dann den Wert 32 entspricht.
-
Willst du immer das letzte Zeichen löschen? Dann musst du nicht nach '\"' suchen. Willst du alle Anführungszeichen löschen? Dann musst du erase noch einen zweiten Parameter mitgeben, denn ansonsten wird alles vom ersten Anführungszeichen bis zum Ende des Strings gelöscht.
-
also wenn das " vorkommt will ich das immer löschen aber ich will auch prüfen ob das vorkommt und nicht generell das letzte zeichen löschen
-
Entfernt alle " aus den String s:
std::string s("\"hallo\""); std::cout << s << std::endl; s.erase(std::remove(s.begin(), s.end(), '"'), s.end()); std::cout << s << std::endl;