Wer kein Programmierexperte ist, wird Mühe haben, in C++ den Zeichenstrings Herr zu werden. Spätestens wenn man eine API ansteuern will und Zeichen aus verschiedensten Orten im Programm zusammensetzen will, dann bricht das Chaos aus und bis die IDE keine Fehlermeldungen mehr meldet, können Stunden vor dem Bildschirm und der Tastatur verloren vergehen. Hier ein Versuch, eine Übersicht darüber zu erstellen.
Arten von Strings
Folgende nicht abschliessende Möglichkeiten hast Du, um Strings in einer Variable zu speichern:
String dasWort1 = "Ich bin ein Stringobjekt";
char dasWort2[] = "Ich bin auch eine Zeichenkette";
char dasWort3[31] = "Ich bin auch eine Zeichenkette";
char dasWort4[5] = "Wort";
char dasWort5[5] = {'W', 'o', 'r', 't'};
char dasWort5[5] = {'W', 'o', 'r', 't', ' '};
char dasWort6[10] = "Wort";
char dasWort7[] = "Mehrzeilige Eingabe"
"eines Satzes "
"grosser Länge";
char* dasWort8 = "Ich bin eine Zeichenkette";
char* dasWort9[] = {"Ich ", "bin ", "eine ", "Zeichenkette"};
char dasWort10 = 'W';
Erklärung der einzelnen Varianten
String – dasWort1
Hierbei handelt es sich nicht um ein Variablentyp sondern um eine komplette Klasse. Das heisst, dasWort1 hat auch Methoden und Funktionen die ausgeführt werden können. Das ist natürlich praktisch, verbraucht aber auch viele mehr Ressourcen als eine Variable vom Typ char.
char – dasWort2-7 und 10
Klassischer String-Typ. Zuerst wird der Typ “char” festgelegt, danach folgt der Name der Variable. Der Char-Typ ist eigentlich ein Array von einzelnen Zeichen, die intern als Zahl (ASCII-Zeichen) gespeichert werden. Ein Array wird über die eckigen Klammern definiert. Es kann eine feste (dasWort3-6) oder eine undefinierte Länge haben (dasWort2+7). Es kann auch nur ein Element enthalten, dann fallen die eckigen Klammern weg (siehe dasWort10). Wird die Länge definiert, ist es wichtig, dass diese immer eines zu Gross gewählt wird, da bei C++ das Ende der Zeichenkette mit einer “