Advertisement
Guest User

characters frequency counter

a guest
Jan 11th, 2014
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.94 KB | None | 0 0
  1. /********************************************************************************
  2. *   in questa versione del programma non salviamo il file di        *
  3. *   di input ma prendiamo un carattere alla volta. controlliamo     *
  4. *   che questo sia valido, se non è una lettera lo scartiamo, se       *
  5. *   è EOF il contatore termina.                        *
  6. ********************************************************************************/
  7. #include <stdio.h>
  8. #define CHAR 26
  9. #define NOTACHAR 27
  10.  
  11. int chartonum(char ch)
  12. {  
  13.     if (ch>='a' && ch <= 'z')
  14.         return ch - 'a';
  15.     if (ch >= 'A' && ch <= 'Z')
  16.         return ch - 'A';
  17.     return NOTACHAR;
  18. }
  19.  
  20.  
  21. int main(void)
  22. {
  23.     int ch; float conta=0; long counter[CHAR];
  24.  
  25.     for(ch=0;ch<26;ch++) counter[ch] = 0;  
  26.  
  27.     while ((ch=getchar()) != EOF)
  28.     {
  29.         if ((ch = chartonum(ch)) <= 25 && ch >= 0)
  30.             counter[ch]++, conta++;
  31.     }
  32.    
  33.     for(ch=0;ch<26;ch++)
  34.     printf("%c appears %ld times : %.2f%%\n", ch + 'A', counter[ch], ((float)counter[ch])/conta*100);
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement