
Ömer sagt:
string.h gibt dir fertige Werkzeuge für alles was du mit Strings machen willst: messen, kopieren, vergleichen, verketten. Immer #include <string.h> nicht vergessen!
Die wichtigsten String-Funktionen
| Funktion | Aufgabe | Rückgabe |
|---|---|---|
| strlen(s) | Länge ohne \0 zählen | Anzahl Zeichen (size_t) |
| strcpy(z, q) | String q nach z kopieren | Zeiger auf z |
| strcmp(a, b) | Vergleichen | 0=gleich, <0, >0 |
| strcat(z, q) | q hinten an z anhängen | Zeiger auf z |
stringfunktionen.cC
#include <string.h> char a[30] = "Hallo", b[] = " Welt", c[30]; printf("%zu\n", strlen(a)); // 5 strcpy(c, a); // c = "Hallo" strcat(c, b); // c = "Hallo Welt" if(strcmp(a,"Hallo")==0) printf("Gleich!\n");
strcmp gibt 0 zurück wenn gleich!
Nicht vergessen: if (strcmp(a, b) == 0) – nicht if (strcmp(a, b))!
Die 6 wichtigsten String-Funktionen
| Funktion | Zweck | Beispiel | Ergebnis |
|---|---|---|---|
| strlen(s) | Länge ohne \0 | strlen("Hi") | 2 |
| strcpy(ziel, quelle) | String kopieren | strcpy(b, "Ok") | b enthält "Ok" |
| strcat(ziel, anhang) | String anhängen | strcat(a, "!") | a wird um "!" verlängert |
| strcmp(s1, s2) | Strings vergleichen | strcmp("a","a") | 0 (gleich) |
| strchr(s, c) | Zeichen suchen | strchr("Hi",'i') | Pointer auf 'i' |
| strstr(s, sub) | Teilstring suchen | strstr("Hallo","all") | Pointer auf "all..." |
strfunktionen.cC
#include <string.h> char s[30] = "Hallo Welt"; printf("%zu\n", strlen(s)); // 10 char *pos = strchr(s, 'W'); // Zeiger auf 'W' if (pos) printf("Gefunden: %s\n", pos); // "Welt" char *sub = strstr(s, "Welt"); // Zeiger auf "Welt" if (sub) printf("Teilstring: %s\n", sub);
▶ Ausgabe
10
Gefunden: Welt
Teilstring: Weltstrcmp – Ergebnis interpretieren
strcmp vergleicht zwei Strings lexikografisch (wie im Wörterbuch) und gibt einen int-Wert zurück:
| Rückgabewert | Bedeutung | Beispiel |
|---|---|---|
0 | Strings sind gleich | strcmp("abc","abc") → 0 |
< 0 (negativ) | s1 kommt vor s2 (alphabetisch kleiner) | strcmp("abc","abd") → negativ |
> 0 (positiv) | s1 kommt nach s2 (alphabetisch größer) | strcmp("b","a") → positiv |
⚠️ Häufige Verwechslung mit strcmp!
if (strcmp(a, b)) ist TRUE wenn die Strings NICHT gleich sind (weil jeder Wert != 0 in C als wahr gilt). Für Gleichheit immer explizit prüfen: if (strcmp(a, b) == 0)
Häufige Fehler
| Fehler | Problem | Lösung |
|---|---|---|
| b = a | Kopiert nur den Zeiger, nicht den Inhalt – Arrays können nicht direkt zugewiesen werden | strcpy(b, a) |
| if (a == b) | Vergleicht Speicheradressen, nicht den String-Inhalt! | if (strcmp(a, b) == 0) |
| strcat ohne Platz | Ziel-Array zu klein → Überschreiben von benachbartem Speicher | Ziel-Array groß genug für beide Strings + \0 dimensionieren |
⚡ Code-Simulator
Teste Array- und String-Operationen direkt im Browser:
C Simulator – Unit 24
▶ Ausgabe
– Klicke AUSFÜHREN –

Ömer sagt:
Ändere die Array-Werte oder den Code und beobachte die Ausgabe. So lernt man Arrays am besten!
🎯 Wissens-Quiz
Frage 1
Was gibt strlen("Hello") zurück?
Frage 2
Was macht strcpy(a, b)?
Frage 3
Wann gibt strcmp(a,b) den Wert 0 zurück?
Frage 4
Was macht strcat(a, b)?
Frage 5
Welches #include braucht man für String-Funktionen?
Frage 6
Was gibt strcmp(a, b) zurück wenn a und b gleich sind?
Frage 7
Was ist falsch an: if (name == "Oemer")?
Frage 8
Welche Funktion gibt die Länge eines Strings zurück (ohne \0)?
📋 Spickzettel
string.h Funktionen
strlen(s)Länge ohne \0
strcpy(z,q)q → z kopieren
strcmp(a,b)0=gleich
strcat(z,q)q an z anhängen
Wichtig
#include Nicht vergessen!
strcmp==0Wenn gleich
ziel groß genugVor strcpy/strcat!
%zu für strlensize_t Typ
✅ Checkliste Unit 24
- Ich kenne strlen, strcpy, strcmp und strcat
- Ich nutze strcmp korrekt (==0 für Gleichheit)
- Ich weiß dass ich #include
brauche - Ich kann Strings kopieren, vergleichen und verketten