Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Char und String | Section
C-Daten und Operatoren

Char und String

Swipe um das Menü anzuzeigen

In C gibt es keinen eigenen Datentyp für Zeichenketten (Text). Stattdessen wird Text als Array von char gespeichert, wobei jedes Element ein einzelnes Zeichen enthält. Zum Beispiel würde der Text c<>definity als eine Folge von Zeichen in einem solchen Array gespeichert werden.

char arr[12] = {'c','<','>','d','e','f','i','n','i','t','y','\0'};

Es fällt auf, dass der Text "c<>definity" 11 Zeichen hat, das Array jedoch 12 Elemente enthält. Dieses zusätzliche Element speichert den Null-Terminierer \0, der das Ende einer Zeichenkette in C markiert.

Es handelt sich dabei nicht um die Zahl Null, sondern um ein spezielles, nicht druckbares Zeichen (ASCII-Code 0), das dem Programm das Ende der Zeichenkette anzeigt.

Note
Hinweis

Das Zeichenarray sollte immer ein Element größer sein als der enthaltene Text, um Platz für den Terminierer zu bieten.

Es ist wichtig zu erkennen, dass 'x' und "x" nicht dasselbe sind.

Ein String besteht aus Zeichen. Immer daran denken, einen String mit dem Zeichen \0 abzuschließen.

  • 'x' ist einfach eine Zeichenkonstante vom Typ char;
  • "x" ist ein String, also ein Array von char-Werten, oder in diesem Fall {'x', '\0'}.
Note
Hinweis

Nicht verwechseln: '\0', '0' und "0". '\0' ist das Nullzeichen (ASCII 0), '0' ist die Ziffer Null (ASCII 48), und "0" ist ein String, der die Ziffer Null plus den Terminator \0 enthält.

String-Ausgabe

In C wird zum Ausgeben von Zeichenketten (Arrays von char-Werten) der %s-Platzhalter verwendet. Dieser Platzhalter weist die Funktion printf() darauf hin, welchen Typ von Information sie erwartet. Mit %s teilen wir der Funktion printf() mit, dass sie eine Zeichenkette erhält.

main.c

main.c

12345678910
#include <stdio.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%s\n", array); // use %s format specifiers return 0; }

Die Programmiersprache C stellt eine Standard-Bibliothek zur Zeichenkettenverarbeitung bereit, <string.h>. In dieser Bibliothek gibt es eine Funktion, die die Anzahl der Zeichen in einer Zeichenkette zählt:

main.c

main.c

123456789101112
#include <stdio.h> #include <string.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%d\n", strlen(array)); return 0; }
Note
Hinweis

Beachte, auch ein Leerzeichen ist ein Zeichen und benötigt einen eigenen Platz im Array. Zum Beispiel: char array[10] = { 'u','s','e',' ','s','p','a','c','e','\0' }.

Durch die Verwendung eines Indexes können die Elemente der Zeichenkette angesprochen werden. Da Zeichenketten im Wesentlichen char-Arrays sind, können auch einzelne Zeichen über ihre Indizes verändert werden.

Main.c

Main.c

123456789101112
#include <stdio.h> int main() { char str[] = "c<>definity"; str[5] = '#'; // Change the sixth character `f` to `#` printf("%s\n", str); return 0; }
question mark

Welche der folgenden Deklarationen definiert einen String in C korrekt?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 6

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 1. Kapitel 6
some-alt