Char und String
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.
Dabei handelt es sich nicht um die Zahl Null, sondern um ein spezielles, nicht druckbares Zeichen (ASCII-Code 0), das dem Programm das Ende der Zeichenkette anzeigt.
Das Zeichenarray sollte immer ein Element größer als der enthaltene Text sein, um den Terminierer aufzunehmen.
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'}.
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 Abschluss \0 enthält.
String-Ausgabe
In C wird zur Ausgabe 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 wird der Funktion printf() mitgeteilt, dass eine Zeichenkette übergeben wird.
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 befindet sich eine Funktion, die die Anzahl der Zeichen in einer Zeichenkette ermittelt:
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; }
Beachte, selbst 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 kann auf die Elemente des Strings zugegriffen werden. Da Strings im Wesentlichen char-Arrays sind, können auch einzelne Zeichen über ihre Indizes geändert werden.
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; }
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 2.63
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.
Dabei handelt es sich nicht um die Zahl Null, sondern um ein spezielles, nicht druckbares Zeichen (ASCII-Code 0), das dem Programm das Ende der Zeichenkette anzeigt.
Das Zeichenarray sollte immer ein Element größer als der enthaltene Text sein, um den Terminierer aufzunehmen.
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'}.
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 Abschluss \0 enthält.
String-Ausgabe
In C wird zur Ausgabe 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 wird der Funktion printf() mitgeteilt, dass eine Zeichenkette übergeben wird.
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 befindet sich eine Funktion, die die Anzahl der Zeichen in einer Zeichenkette ermittelt:
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; }
Beachte, selbst 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 kann auf die Elemente des Strings zugegriffen werden. Da Strings im Wesentlichen char-Arrays sind, können auch einzelne Zeichen über ihre Indizes geändert werden.
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; }
Danke für Ihr Feedback!