Programmieren
 
 
 
 
 
C-Grundkurs
 
 
 
 
 
.. Ersatzschreibweise für ASCII-Zeichen in C
 
 

 
 
 
 

 

Ersatzschreibweisen für Zeichen werden in Zeichenfolgen, (den sogenannten Strings) benutzt, wenn das Zeichen bereits eine besondere Funktion erfüllt, oder von der Tastatur aus nicht erreichbar ist.

Beispiel:
Der Formatstring bei printf ("Zeichenfolge"); benutzt das Zeichen " zur Abgrenzung des Strings Zeichenfolge. Sollen die Gänsefüßchen " ein Teil des Strings werden, soll also “Zeichenfolge“ auf dem Bildschirm erscheinen, so müssen sie in ihrer Ersatzschreibweise angegeben werden, denn printf(""Zeichenfolge""); führt zu einem Fehler.

Die Anweisung ..

 

 

printf ("\"Ersatzzeichen\"");

 

 
.. hätte die gewünschte Wirkung. Auf dem Bildschirm erscheint ..

"Ersatzzeichen"

In dem String “\“Ersatzzeichen\““ ersetzt \“ die Gänsefüßchen. Man nennt \“ das Ersatzzeichen für die Gänsefüßchen.
Ein anderes Beispiel ist das Zeichen \ selber. Wie gerade gesehen, leitet es Ersatzzeichen ein, ist damit als selbständiges Zeichen auch nicht mehr verwendbar und muss selber ersetzt werden. In einem String wird das Zeichen \ zu \\. So mutieren Pfadangaben in C-Strings wie folgt ..
 
string[] = "c:\\tc\\tc.exe\r\n";
printf ("Der Pfad lautet: %s", string);   // oder
printf ("Der Pfad lautet: c:\\tc\\tc.exe\r\n");
 
Obiger String würde auf dem Bildschirm zu ..

Der Pfad lautet: c:\tc\tc.exe

.. was in der Tat eine gültige Pfadangabe ist. \r\n setzen dabei den Cursor auf Spalte 1 (\r) der nächsten Zeile (\n). Welche Ersatzzeichen es insgesamt in der Sprache C gibt, zeigt die nachfolgende Tabelle.
 
 
 
 

 


 

 

Tabelle der verfügbaren Ersatzzeichen (Escapesequenzen) in C

 

 

\b

(BS)

backspace

bewegt den Cursor einen Schritt zurück

 

 

\f

(FF)

formfeed

Seitenvorschub z.B. bei einem Drucker

 

 

\n

(LF)

linefeed

Zeilenvorschub z.B. bei einem Drucker oder auf dem Bildschirm

 

 

\r

(CR)

Crriage return

Wagenrücklauf, oder Cursor zur ersten Position der Zeile

 

 

\t

(HT)

tabulator

Cursor zum nächsten horizontalen Tabulator

 

 

\v

(VT)

tabulator

Cursor zum nächsten vertikalen Tabulator

 

 

\a

(BEL)

signal

gibt einen Signalton über den Lautsprecher aus

 

 

\\

(\)

backslash

Gegenschrägstrich in den Text einfügen.

 

 

 

 

 

Achtung: eine Pfadangabe im C-String lautet deswegen "c:\\TC\\TC.EXE"

 

 

\?

(?)

 

Fragezeichen in den Text einfügen

 

 

\'

(')

 

Hochkomma in den Text einfügen

 

 

\"

(")

 

Anführungsstriche in den Text einfügen

 

 

\0

(NUL)

 

Stringende kennzeichnen (Sonderfall von okt ASCII)

 

 

\ooo

 

okt ASCII

Zeichen mit dem oktal angegebenen ASCII-Code in den Text einfügen. ooo steht für eine 3-stellige oktale Zahl. (heutzutage relativ selten benutzt)

 

 

\xhh

 

hex ASCII

Zeichen mit dem hexadezimal angegebenen ASCII-Code in den Text einfügen. hh steht für eine 2-stellige hexadezimale Zahl.

 

 

 

 

 
 
 
 
Probleme mit dem Ersatzzeichen \xhh bei Compilern
Es gibt Compiler, die mit der Auswertung des Ersatzzeichens \xhh für zweistellige hexadezimale Zahlen in der Weise Probleme haben, als sie nachfolgende Zeichen, die als Ziffern (dezimal od. hexadezimal) gewertet werden können, mit zu der auszuwertenden zweistelligen Ziffernfolge hinzuschlagen. z.B.: \x1BAffe“ gemeint als ESC Affe und nicht als 1Bh, AFh, Feh.
Tritt diese Fehlinterpretation bei einem Compiler auf, sollte man den String wie folgt unterteilen “\x1B“ “Affe“. Compiler fügen derart unterteilte Strings zusammen und es entsteht tatsächlich die gewünschte Abfolge 1Bh 41h 66h 66h 65h -> ESC Affe.
 
 
 
 
www..de