
C hat eine ganze Bibliothek für String-Operationen: <string.h>. Damit kannst du Strings messen, kopieren, vergleichen und verketten – ohne selbst jedes Zeichen anfassen zu müssen! 🔧
📚 Die string.h-Bibliothek
Mit #include <string.h> erhältst du viele nützliche String-Funktionen:
| Funktion | Zweck | Beispiel | Ergebnis |
|---|---|---|---|
| strlen(s) | Länge ohne \0 | strlen("Hallo") | 5 |
| strcpy(z, q) | q → z kopieren | strcpy(ziel, "Hi") | ziel = "Hi" |
| strcmp(a, b) | Vergleich | strcmp("A","A") | 0 (gleich) |
| strcat(z, q) | q an z anhängen | strcat("Ha","llo") | "Hallo" |
| strncpy(z,q,n) | Maximal n Zeichen | strncpy(z,q,10) | Sicherer! |
#include <stdio.h> #include <string.h> int main() { char s1[20] = "Hallo"; char s2[20] = "Welt"; char ziel[40]; /* strlen – Länge */ printf("Länge: %zu\n", strlen(s1)); // 5 /* strcpy – Kopieren */ strcpy(ziel, s1); printf("Kopie: %s\n", ziel); // Hallo /* strcat – Verketten */ strcat(ziel, " "); strcat(ziel, s2); printf("Kette: %s\n", ziel); // Hallo Welt /* strcmp – Vergleich */ if (strcmp(s1, "Hallo") == 0) printf("Strings sind gleich!\n"); return 0; }
Kopie: Hallo
Kette: Hallo Welt
Strings sind gleich!
🔍 strcmp im Detail
strcmp gibt 0 zurück wenn GLEICH
strcmp(a, b) gibt zurück:
0 – a und b sind gleich
< 0 – a kommt alphabetisch vor b
> 0 – a kommt alphabetisch nach b
Wichtig: if (strcmp(a,b) == 0) – nicht if (a == b)!
✏️ Übungen
Ergebnisse bestimmen
Gegeben: char s[] = "Programmieren";
strlen(s)= _______strcmp("abc","abc")= _______strcmp("B","A")ist _______ (negativ/0/positiv)
Fehler finden
Finde und korrigiere die Fehler:
Passwort-Prüfung
Schreibe ein Programm, das ein Passwort einliest und mit "geheim123" vergleicht:
Vollständiger Name zusammenbauen
Lese Vor- und Nachname getrennt ein, baue mit strcat den vollen Namen zusammen und gib ihn mit seiner Länge aus:
Palindrom-Prüfung
Ein Palindrom liest sich vorwärts und rückwärts gleich (z.B. "racecar", "level", "madam"). Schreibe einen Palindrom-Checker ohne Bibliotheksfunktion – nur mit Index-Vergleich: