C String-Funktionen
String-Funktionen
C verfügt außerdem über viele nützliche String-Funktionen, mit denen bestimmte Operationen an Strings ausgeführt werden können.
Um sie zu verwenden, müssen Sie die Header-Datei <string.h>
in Ihr Programm einbinden:
#include <string.h>
Stringlänge
Um beispielsweise die Länge einer Zeichenfolge zu ermitteln, können Sie die Funktion strlen()
verwenden:
Beispiel
char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d", strlen(alphabet));
Try it Yourself »
Im Kapitel Strings haben wir sizeof
verwendet, um die Größe eines Strings/Arrays zu ermitteln. Beachten Sie, dass sich sizeof
und strlen
unterschiedlich verhalten, da sizeof
berücksichtigt beim Zählen auch das Zeichen \0
:
Beispiel
char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d", strlen(alphabet)); // 26
printf("%d", sizeof(alphabet)); // 27
Try it Yourself »
Es ist auch wichtig, dass Sie wissen, dass sizeof
immer die Speichergröße (in Bytes) und nicht die tatsächliche Stringlänge zurückgibt:
Beispiel
char alphabet[50] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d", strlen(alphabet)); // 26
printf("%d", sizeof(alphabet)); // 50
Try it Yourself »
Zeichenfolgen verketten
Um zwei Zeichenfolgen zu verketten (zu kombinieren), können Sie die Funktion strcat()
verwenden:
Beispiel
char str1[20] = "Hello ";
char str2[] = "World!";
// Verketten Sie str2 mit str1 (ein Ergebnis wird in gespeichert str1)
strcat(str1, str2);
// Drucken Sie str1
printf("%s", str1);
Try it Yourself »
Beachten Sie, dass die Größe von str1
groß genug sein sollte, um das Ergebnis der beiden Zeichenfolgen zusammen zu speichern (20 in unserem Beispiel).
Zeichenfolgen kopieren
Um den Wert einer Zeichenfolge in eine andere zu kopieren, können Sie die Funktion strcpy()
verwenden:
Beispiel
char str1[20] = "Hello World!";
char str2[20];
// Kopieren Sie str1 nach str2
strcpy(str2, str1);
// Drucken Sie str2
printf("%s", str2);
Try it Yourself »
Beachten Sie, dass die Größe von str2
groß genug sein sollte, um die kopierte Zeichenfolge zu speichern (20 in unserem Beispiel).
Strings vergleichen
Um zwei Zeichenfolgen zu vergleichen, können Sie die Funktion strcmp()
verwenden.
Es gibt 0
zurück, wenn die beiden Zeichenfolgen gleich sind, andernfalls einen Wert, der nicht 0 ist:
Beispiel
char str1[] = "Hello";
char str2[] = "Hello";
char str3[] = "Hi";
// Vergleichen Sie str1 und str2 und drucken Sie das Ergebnis aus
printf("%d\n", strcmp(str1, str2)); // Gibt 0 zurück (die Zeichenfolgen sind gleich)
// Vergleichen Sie str1 und str3 und drucken Sie das Ergebnis aus
printf("%d\n", strcmp(str1, str3)); // Gibt -4 zurück (die Zeichenfolgen sind nicht gleich)
Try it Yourself »