📘 Kapitel 5 · Arrays & Strings

String-Funktionen

strlen · strcpy · strcmp · strcat · string.h

24 / 30 Units
Ömer
Kapitel 5: Arrays & Strings ~45 Min. Theorie + Simulator + Quiz + Spickzettel
Ömer
Ö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

FunktionAufgabeRückgabe
strlen(s)Länge ohne \0 zählenAnzahl Zeichen (size_t)
strcpy(z, q)String q nach z kopierenZeiger auf z
strcmp(a, b)Vergleichen0=gleich, <0, >0
strcat(z, q)q hinten an z anhängenZeiger 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

FunktionZweckBeispielErgebnis
strlen(s)Länge ohne \0strlen("Hi")2
strcpy(ziel, quelle)String kopierenstrcpy(b, "Ok")b enthält "Ok"
strcat(ziel, anhang)String anhängenstrcat(a, "!")a wird um "!" verlängert
strcmp(s1, s2)Strings vergleichenstrcmp("a","a")0 (gleich)
strchr(s, c)Zeichen suchenstrchr("Hi",'i')Pointer auf 'i'
strstr(s, sub)Teilstring suchenstrstr("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: Welt

strcmp – Ergebnis interpretieren

strcmp vergleicht zwei Strings lexikografisch (wie im Wörterbuch) und gibt einen int-Wert zurück:

RückgabewertBedeutungBeispiel
0Strings sind gleichstrcmp("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

FehlerProblemLösung
b = aKopiert nur den Zeiger, nicht den Inhalt – Arrays können nicht direkt zugewiesen werdenstrcpy(b, a)
if (a == b)Vergleicht Speicheradressen, nicht den String-Inhalt!if (strcmp(a, b) == 0)
strcat ohne PlatzZiel-Array zu klein → Überschreiben von benachbartem SpeicherZiel-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
Ö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?
A6
B5
C4
D0
Frage 2
Was macht strcpy(a, b)?
AVergleicht a und b
BKopiert b nach a
CHängt b an a an
DGibt Länge von b zurück
Frage 3
Wann gibt strcmp(a,b) den Wert 0 zurück?
AWenn a kürzer als b
BWenn a und b gleich sind
CWenn a vor b kommt
DNiemals
Frage 4
Was macht strcat(a, b)?
AKopiert b nach a
BVergleicht a und b
CHängt b an das Ende von a an
DGibt Länge zurück
Frage 5
Welches #include braucht man für String-Funktionen?
A
B
C
D
Frage 6
Was gibt strcmp(a, b) zurück wenn a und b gleich sind?
A1
B-1
C0
Dtrue
Frage 7
Was ist falsch an: if (name == "Oemer")?
ADer String "Oemer" ist zu kurz
BVergleicht Adressen, nicht Inhalte — strcmp verwenden
C== ist kein gültiger Operator in C
Dname muss mit & übergeben werden
Frage 8
Welche Funktion gibt die Länge eines Strings zurück (ohne \0)?
Asizeof(s)
Blength(s)
Cstrsize(s)
Dstrlen(s)

📋 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