C++ Alle Leerzeichen entfernen+Ausnahme?


07.02.2022, 16:53

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


07.02.2022, 17:04

Zweite Info: Ich sollte lieber kein Regex verwenden da das Programm so schnell wie möglich ablaufen sollte

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

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.

Woher ich das weiß:Studium / Ausbildung