Hi Christian 
wie kann ich bei C sicherstellen, dass
ein Benutzer nur eine bestimmte Anzahl
von zeichen eingibt?
In gibt es die Funktion:
char *fgets (char *string, int n, FILE *stream);
Diese Funktion liest maximal (n-1) Zeichen aus dem stream. Sollte in dem Stream vorher ein „\n“ (Return) auftauchen, wird dort beendet. In jedem Fall, wird ein Nullbyte als Endekennzeichen an den String gehängt!
Wenn du also maximal 10 Zeichen von der Tastatur einlesen möchtest, dann lautet der Aufruf:
char input[11]
fgets(input,11,stdin);
Und 2. Frage, wie ist es möglich, dass
ich das string array auf die richtige
größe allokieren kann, wenn ich eine
(nahezu) unbegrenzte anzahl von chars
einlesen will?
Da brauchst du dir eigentlich keine Sorgen zu machen. Jeder Compiler hat abhängig vom Betriebssystem eine andere Obergrenze für die Länge eines Strings! Der ANSI-C-Standard velangt, dass ein String wenigstens 509 Zeichen lang sein muss! Wenn du also kompatible Programme schreiben möchtest, sind diese 509 Zeichen auch für dich die Obergrenze. Visual-C unterstützt bis zu 2048 Zeichen pro String!
cu Stefan.