hi!

also ich habe da nen kleines Problem, ich habe folgendes geschrieben:

char eingabe[101];

printf("Geben Sie einen Satz ein (maximal 100 Zeichen):");
fgets(eingabe, 101,stdin);


int i;
int leerzeichen=0;
for(i=0; eingabe[i]; i++){
if(eingabe[i]==32){ //32 ist der Wert für ein Leerzeichen im ASCII-Code
leerzeichen++;
printf("Leerzeichen gefunden an Stelle %d\n",i);
}
}
printf("Ende des String an Stelle %d", i);

so also ich will zählen wie viele Leerzeichen in dem String vorkommen. Also das klappt auch einiger maßen nur wundere ich mich in einer Sache.
Ich lasse mir ja am ende den Wert von i ausgeben. Ich lesen ja einen String der länge 101 ein. fgets muss doch eingentlich den Stringterminator am Ende an der Stelle eingabe[100] setzten. deswegen dürfte die schleife doch auch nur bis i=100 durchlaufen werden oder? leider stimmt das aber nicht. Es kommt immer ein andere Wert für i raus. z.b. 291. Wie kommt das. Was ist daran falsch?