Hallo,
gets(eingabe);
ACHTUNG: GEFAHR! Das prüft die Puffergröße nicht. Wenn der Puffer also nicht groß genug ist, wird irgendwohin in den Speicher geschrieben. Du hast Dir hier einen klassischen stack-based buffer overflow gebastelt, Quelle Nr. 1 für Sicherheitslücken in C-Software. Gut, bei Deinem einfachen Programm ist das noch relativ egal, das macht ja sowieso nichts - aber Du solltest Dir das gar nicht erst angewöhnen.
ALSO: NUTZE NIE, NIE, NIE gets(). NIE. UNTER KEINEN UMSTÄNDEN. Das ist eine der wenigen Funktionen, vor der man IMMER abraten muss. IMMER. Mein Linker warnt mich sogar davor:
main.c:(.text+0x6d): warning: the `gets' function is dangerous and should not be used.
Als Alternative bietet sich fgets() an, der kann man die Puffergröße noch übergeben - man muss dafür halt stdin auch noch angeben:
fgets(eingabe, 1024, stdin);
Allerdings: fgets() lässt das \n-Zeichen am Ende einer Zeile (unter Windows vmtl. sogar \r\n) stehen. Daher musst Du Deine Schleife anpassen, wenn das genau so reagieren soll:
while(eingabe[i] != '\0' && eingabe[i] != '\r' && eingabe[i] != '\n')
i++;
Viele Grüße,
Christian