C++ Alle Leerzeichen entfernen+Ausnahme?
Hallo, ich möchte in C++ in einem std::sring alle Leerzeichen entfernen, es seiden sie befinden sich zwischen zwei Abostrophen. (') Z.B. Soll ein String mit dem Wert
Test ' TestNummer2 ' Test3
am Ende so aussehen:
Test' TestNummer2 'Test3
Wie kann ich das machen?
PS: Bitte mit Codebeispiel ich kenne mich bei C++ nicht wirklich mit Funktionen aus...
LG
Es kann auch sein dass es keine Abostrophe gibt, dann soll nichts mit dem string passieren und wenn eins nicht geschlossen ist dann kann einfach
crr << "Error\n";
return 0;
beispielsweise passieren
Zweite Info: Ich sollte lieber kein Regex verwenden da das Programm so schnell wie möglich ablaufen sollte
1 Antwort
Meine Idee wäre Pipeline orientiert aus dem embedded Bereich. Du liest Zeichen für Zeichen ein und schreibst diese ohne Leerzeichen in eine Datei oder Buffer oder ähnliches.
Sobald ein ' kommt, nimmst du dir einen 2. Buffer her und schreibst dort alle Zeichen rein bis ein weiteres ' Auftritt. Sobald das geschehen ist schreibst du den Buffer in den alten Buffer/File etc.
Wenn das erste ' nicht geschlossen wird, dann behandelst du den neuen temporären Buffer als neue Eingabe Quelle, schreibst das erste ' manuell und ab da wieder Zeichen für Zeichen, ohne Leerzeichen.
Das wäre eine von vielen Lösungen. Man könnte auch einfach nur auf das öffnende apostrophe achten und ab da Leerzeichen schreiben.
Es gibt sicherlich eine Regex alternative die jemand anders hier auch erläutern wird, aber Regex habe ich gerade erst angefangen und kann den Fall, dass man nur Leerzeichen zwischen 2 chars sucht nicht abdecken. Soll ja nicht bei " a ' b ' c ' " c die Leerzeichen auch lassen oder?
Aber mit meiner Methode kommst du theoretisch auch ans Ziel, könnte nur etwas rechenintensiver sein.