Ein String ist eine Zeichenkette, er besteht aus aufeinanderfolgenden Zeichen.
Nehmen wir als Beispiel einmal folgenden Text:
P r o g r a m m i e r e n m a c h t S p a ß . |
Dieser Satz ist eine Zeichenkette, weil er aus aufeinanderfolgenden Zeichen zusammengesetzt ist.
Es wird Ihnen sicher einleuchten, dass das P das erste Zeichen dieser Zeichenkette ist. Wir können ihm innerhalb des String die Position bzw. den Index 0 zuordnen. Das erste r besitzt dann den Index 1, das o den Index 2 ...
In C/C++ gibt es keine Sprachdefinition für einen Stringtyp.
Weil aber ein String die Eigenschaften eines Arrays besitzt, wird hierfür den Datentyp
Zeichen-Array, also char-Array, verwendet. In C/C++ Syntax lautet eine geeignete Deklaration also
char Satz[30]; |
Stellen Sie sich bitte einmal vor, ein Programm erwartet an irgendeiner Stelle die Eingabe eines Textes bzw. einer Zeichenkette. Es könnte sich beispielsweise um die Eingabe eines Dateinamens handeln. Diese Texteingabe muss in einer Variablen bzw. einem Puffer abgelegt werden.
Nun wissen Sie aber nicht, wieviele Zeichen der Benutzer für diesen Text (Dateinamen) eingeben wird. Sie können aber mit an Sicherheit grenzender Wahrscheinlichkeit annehmen, dass diese Eingabe nicht mehr als beispielsweise 40 Zeichen umfasst.
Sie richten also eine Variable ein, die bis zu 40 Zeichen aufnehmen kann.
char Eingabe[40]; |
A n m e l d u n g . t x t |
Diese 13 Zeichen werden nun in der Array-Variablen Eingabe abgelegt, welche insgesamt Platz für 40 Zeichen bietet. Damit der Dateiname in Eingabe richtig verwendet werden kann, muss klar sein, dass dieser Name hinter dem zweiten t zu Ende ist. Es gibt aber keine besondere Endemarke, ein Computer verarbeitet schließlich nichts anderes als Nullen und Einsen.
In C und C++ gibt es nun eine Vereinbarung, dass ein ansonsten nicht druckbares Zeichen als Endemarke verwendet wird. Dieses Zeichen ist das Nullbyte (= Wert Null) '\0', welches hinter das letzte gültige Zeichen einer Zeichenkette gesetzt wird. Dieses Nullbyte schließt eine Zeichenkette ab, weshalb man so etwas auch einen nullterminierten String nennt. Für dieses Abschlusszeichen braucht man ein zusätzliches Byte bzw. char. Unsere Array-Variable Eingabe kann also statt 40 nur noch 39 Zeichen aufnehmen, wenn sie als String-Variable eingesetzt werden soll.
Wenn darin die Zeichenkette "Anmeldung.txt" abgelegt wird, dann liegen folgende Zeichen im Array:
Index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 String: 'A' 'n' 'm' 'e' 'l' 'd' 'u' 'n' 'g' '.' 't' 'x' 't' '\0' ... |
Wenn Sie Strings verarbeiten lassen wollen, benötigen Sie normalerweise die Beschreibungsdatei <string.h>.
Häufig benötigte Funktionen, welche mit nullterminierten Strings umgehen, sind:
gets, puts, strlen, strcpy, strcat
Hierzu und zu weiteren Funktionen finden Sie in der Hilfe von Borland C++ geeignete Informationen.