Escape-Sequenzen |
Top Previous Next |
Glossar > Escape-Sequenzen
Escape-Sequenzen können zur Repräsentation nicht darstellbarer Zeichen. Eine Escape-Sequenz beginnt stets mit dem Backslash. Z..B. steht \n für das Zeichen "Zeilenvorschub".
Ein Backslash in Kombination mit oktalen oder hexadezimalen Zahlen repräsentiert den ASCII- oder Steuercode, der diesem Wert entspricht, z.B. '\03' für Ctrl-C oder '\x3F' für das Fragezeichen. Eine Escape-Sequenz kann einen String mit bis zu drei oktalen oder beliebig vielen hexadezimalen Ziffern umfassen, vorausgesetzt, der Wert liegt im zulässigen Bereich des Datentyps char (0 bis 0xff). (Bei der Definition von regulären Ausdrücken werden nur zwei hexadezimale Zeichen ausgewertet.) Größere Zahlen liefern den Compilerfehler "value is too large". Die Oktalzahl \777 ist zum Beispiel größer als der zulässige Höchstwert \377 und ergibt somit einen Fehler. Das erste nicht-oktale oder nicht-hexadezimale Zeichen in einer oktalen oder hexadezimalen Escape-Sequenz markiert das Ende der Sequenz.
Sehen Sie dieses Beispiel:
out << "\x0072.1A rudimentäres Betriebssystem";
Diese Zeile soll als \x007 und "2.1A rudimentäres Betriebssystem" interpretiert werden. Tatsächlich wird \x0072 jedoch als hexadezimale Zahl und ".1A rudimentäres Betriebssystem" als literaler String interpretiert.
Zur Umgehung derartiger Probleme sollte die Programmzeile folgendermaßen neu geschrieben werden:
out << "\x007" "2.1A rudimentäres Betriebssystem";
Mehrdeutigkeiten entstehen auch, wenn auf eine oktale Escape-Sequenz eine nicht-oktale Ziffer folgt. Da 8 und 9 unzulässige oktale Ziffern sind, würde z.B. die Konstante \258 als Zwei-Zeichen-Konstante interpretiert, die sich aus den zwei Zeichen \25 und 8 zusammensetzt.
In der folgenden Tabelle sind alle Escape-Sequenzen zusammengefasst, die sowohl in literalen Token als auch in regulären Ausdrücken verwendet werden können. Für reguläre Ausdrücke gibt es noch weitere Escape-Sequenzen.
Hinweis: Sie müssen den (typischerweise in Pfadnamen verwendeten) Backslash verdoppeln (also "\\" angeben), um ihn als ANSI-Backslash gelten zu lassen.
|
Diese Seite gehört zur TextTransformer Dokumentation |
Home Inhalt English |