Zeichen zählen und ausgeben
-
Bin neu in C und hab natürlich gleich ein Problem. Ziemlich trivialer Fall wahrscheinlich, aber das Problem ist mir nicht ersichtlich. Es geht um folgendes:
Ich habe ein Programm, dass die Anzahl eingegebener Zeichen zählen soll, der Code sieht folgendermaßen aus:
#include <stdio.h> #include <stdlib.h> int main (void) { int zeichen, i; i=0; while ((zeichen=getchar())!=EOF) { i++; } printf("%d,i"); getchar(); return EXIT_SUCCESS; }
Das Problem: Ich kann zwar eine Zeichenkette eingeben, bei Druck auf Enter erscheint allerdings nicht die Anzahl der eingegebenen Zeichen. Wisst ihr zufällig wo der Fehler liegt???
-
Ein Return ('\n') ist ja auch nur ein gewöhnliches Zeichen. Deine Schleife bricht aber nur bei EOF ab, nicht aber bei '\n'.
-
printf("%d,i");
ist ja auch falsch ;x
-
printf("%d", i);
-
Versuchs mal hiermit:
#include <stdio.h> #include <stdlib.h> int main() { int i; char zeichen[128]; scanf("%s", &zeichen); for(i = 0; zeichen[i]; i++); printf("%d Zeichen", i); return EXIT_SUCCESS; }
Edit:
Statt
for(i = 0; zeichen[i]; i++);
ginge natürlich auch
#include <string.h> i = strlen(zeichen);