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);
    

Anmelden zum Antworten