
Strings in C sind char-Arrays – eine Folge von Zeichen, am Ende ein Nullzeichen \0. Das ist der wichtigste Unterschied zu anderen Sprachen. Ohne \0 weiß C nicht wo der String endet! 📝
📝 Strings in C – char-Arrays
Ein String ist ein char-Array, das mit dem Nullzeichen '\0' (ASCII 0) endet. Dieses Zeichen markiert das Ende des Strings:
#include <stdio.h> int main() { /* Verschiedene Deklarationen */ char name1[20] = "Oemer"; // mit String-Literal char name2[] = "HTL"; // Größe automatisch: 4 char name3[10]; // leer, zum Einlesen /* String einlesen – KEIN & bei scanf! */ printf("Name eingeben: "); scanf("%s", name3); // kein &, liest bis Leerzeichen /* String ausgeben */ printf("Hallo, %s!\n", name1); printf("Schule: %s\n", name2); printf("Du: %s\n", name3); return 0; }
⚠️ Wichtige Regeln für Strings
| Regel | Richtig | Falsch / Problem |
|---|---|---|
| Größe mit \0 | char s[6] = "Hallo"; | char s[5] = "Hallo"; ← kein Platz für \0! |
| scanf ohne & | scanf("%s", name); | scanf("%s", &name); ← falsch |
| Zuweisung | strcpy(ziel, quelle); | ziel = quelle; ← funktioniert nicht! |
| Vergleich | strcmp(a, b) == 0 | a == b ← vergleicht Adressen! |
💡 scanf("%s") liest nur bis zum Leerzeichen
Für Namen mit Leerzeichen (z.B. "Max Mustermann") benutze:
scanf("%19s", name); – mit maximaler Länge zur Sicherheit, oder
fgets(name, 20, stdin); – liest die ganze Zeile
✏️ Übungen
Arraygröße bestimmen
Wie groß muss das char-Array mindestens sein?
- String
"Hallo"→ mindestens _______ Zeichen - String
"Informatik"→ mindestens _______ Zeichen - String
"C"→ mindestens _______ Zeichen - Leerer String
""→ mindestens _______ Zeichen
String zeichenweise lesen
Schreibe ein Programm, das einen String einliest und jeden Buchstaben mit seinem Index ausgibt (bis \0 erreicht wird):
Begrüßung
Schreibe ein Programm, das den Vornamen einliest und eine personalisierte Begrüßung ausgibt. Nutze %s für den String:
Vokale zählen
Schreibe ein Programm, das einen eingegebenen String zeichenweise durchläuft und die Anzahl der Vokale (a, e, i, o, u – groß und klein) zählt: