[gelöst] Escape-Sequenz für Leerzeichen?

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
Exasperation
Beiträge: 186
Registriert: 11. März 2009 18:00
Wohnort: VS

[gelöst] Escape-Sequenz für Leerzeichen?

Beitrag von Exasperation »

Hallo! Ich schreibe ein Programm um eine bestimmte Zeichenfolge in beliebig vielen cpp hpp inl txt und sonstigen textbasierten Dateien zu finden. Klappt auch alles soweit super, nur bei einer Abfrage habe ich ein Problem... Ich möchte abfragen ob ein bestimmtes Zeichen in meinem eingelesenen String ein Leerzeichen ist! Also für die Abfrage von " kann ich beispielsweise \" benutzen, also die ganz normale Escape-Sequenz... Aber wie stell ich das bei einem Leerzeichen an? ' ' funktioniert z.B. nicht... Eine echte Escape-Sequenz habe ich auch nicht gefunden... Kennt jemand ne Möglichkeit?

Code: Alles auswählen

if( p_line.at(indicator+8) == ' ' ) // <--- Hier
			{
				sub_string = p_line.substr( begin + 2 );
			}
Zuletzt geändert von Exasperation am 21. April 2009 14:37, insgesamt 1-mal geändert.
FaS
Beiträge: 184
Registriert: 25. Mai 2006 19:48
Kontaktdaten:

Beitrag von FaS »

Doch, das funktioniert so, dein Fehler muss woanders liegen. Gib doch vor dem if dein p_line aus, um zu schauen, was da überhaupt tatsächlich drinsteht.
Exasperation
Beiträge: 186
Registriert: 11. März 2009 18:00
Wohnort: VS

Beitrag von Exasperation »

Ich hab schon durch debugged und in p_line steht schon das richtige drin.. Ich debug nochmal um genau zu sehen woran es scheitert... Werd dann wieder was posten...

Nur um mein Wissen zu erweitern: Gibts noch ne andere Möglichkeit außer: ' ' ?

Schonmal danke für die Hilfe :)
FaS
Beiträge: 184
Registriert: 25. Mai 2006 19:48
Kontaktdaten:

Beitrag von FaS »

QChar::at( x ) fragt das x+1. Zeichen ab, das ist klar, oder?
Wenn ja, dann stimmt wohl dein if-Zweig nicht.

Fall du auf alle Separatoren testen möchtest, welche zu den Unicode-Klassen
Zs, Zl und Zp (Space, Line, Paragraph) gehören: QChar::isSpace().
Falls du nur auf Tabs prüfen möchtest: \t; Zeilenumbrüche \n nur, wenn die Datei mit QIODevice::Text eingelesen wurde.
Exasperation
Beiträge: 186
Registriert: 11. März 2009 18:00
Wohnort: VS

Beitrag von Exasperation »

FaS hat geschrieben:QChar::at( x ) fragt das x+1. Zeichen ab, das ist klar, oder?
Öhm, ich bin zwar heir im QT Forum, aber die Frage habe ich extra unter C++ Grundlagen gestellt, weil der Teil des Progs nichts mit QT zu tun hat ;) Das was ich hier habe ist ein std::at() für strings :)

Auf jeden Fall habe ich es nun rausbekommen, das ' ' war tatsächlich richtig und mein Fehler lag nur in der Erstellung meines Substrings, bzw der Stelle an der das geschah... Er wurde falsch geschnitten und in einer anderen Funktion, erzeugte dies einen Fehler ;)

Habe jetzt eine viel bessere Version geschrieben... Die Funktion verschiebt den Anfang des Substrings, bis es kein Leerzeichen mehr findet...

Code: Alles auswählen

while( p_line.at( begin ) == ' ' )
			{
				begin += 1;
			}
Antworten