Strings
Du willst wissen, wie Strings in C funktionieren? Im folgenden Beitrag zeigen wir dir die einzelnen Befehle zum Thema Strings.
Inhaltsübersicht
Strings C – Was sind Strings?
Strings sind eine Art von Array, die nur aus Zeichen bestehen. Im Speicher werden sie mit der binären Null abgeschlossen. Das heißt für uns, dass wir sie ganz normal wie Arrays deklarieren können, aber auch, dass wir die Zeichenkette abspeichern können, ohne eine Länge für das Array explizit anzugeben.
Haben wir das getan, muss die ganze Länge des Speicherbereichs von der eingelesenen Speicherkette nicht vollständig ausgenutzt werden. Dabei musst du allerdings beachten, dass du auch über den reservierten Speicherbereich hinaus schreiben und damit Programm- und Rechenfehler erzeugen kannst.
Genau wie normale Arrays können wir einzelne Zeichen mittels eines Index ansprechen. Das Ende einer Zeichenkette markiert die binäre Null. Deswegen kannst du auch immer nur ein Zeichen weniger abspeichern als das Array fassen könnte. Das liegt daran, dass das letzte Zeichen mit eben dieser binären Null aufgefüllt wird.
char, char*name und die Bibliothek string.h
Werden sie als Eingabe-Parameter für eine Funktion übergeben, können sie entweder so: char [ ] oder so: char*name übergeben werden. Für diesen Schritt ist es wieder praktisch, dass wir die Länge nicht angeben müssen, da wir uns damit einen zusätzlichen Eingabeparameter sparen können.
Aber das eigentlich tolle an Strings ist, dass sie ihre eigene Bibliothek haben. In <string.h> gibt es eine Fülle von Funktionen, die dir die Arbeit mit diesen Arrays sehr erleichtern. Die wichtigsten davon zeigen wir dir jetzt.
strlen C, strcmp C und strcat C
Benutzt du strlen(string), so erhältst du die Länge deines Strings als Rückgabewert. Mit strcmp(str, string) kannst du zwei Strings vergleichen. Wenn die beiden gleich sind, erhältst du null als Rückgabewert. Sonst gibt diese Funktion einen Wert kleiner oder größer null zurück.
strcat(dest, src) ist ebenfalls eine sehr nützliche Funktion, denn mit ihr kannst du eine Zeichenkette an die andere anhängen. Damit wird zum Beispiel aus „Hallo“ „Hallo Welt!“. Der erste angegebene String ist dabei der Ort, an den beide Ketten gespeichert werden.
strcpy C und atoi C
Möchtest du stattdessen einen String kopieren, kannst du strcpy(dest, src) nutzen. Aber Achtung, hier gibt es noch etwas Wichtiges zu beachten. Hast du zum Beispiel in einen String mit dem Wert „Wolken“ einen String mit dem Wert „Sonne“ kopiert, ist dein Ergebnis nicht „Sonne“, sondern „Sonnen“. Das liegt daran, dass die übrigen Zeichen des Strings nicht gelöscht werden.
Die letzte Funktion, die du wirklich oft brauchen wirst, ist die atoi(string)-Funktion. Sie steht allerdings nicht in string.h sondern in stdlib.h.
Sie kann aus einem String wie etwa „Ich habe heute eine Pizza mit 12 Oliven bei Mario bestellt“ nur die Zahlen extrahieren. Das ist DANN praktisch, wenn du sie in eine int-Variable packen willst.
Jetzt weißt du alles, was du über Strings wissen musst und kannst endlich unkompliziert mit Zeichenketten arbeiten.