/** * tally - tally common letters from standard input. */ #include #include #include #define LETTERS { 'E','T','A','I','O','N','S','H','R','D','L','U' } #define NUM_LETTERS 12 int main () { char uppercase[NUM_LETTERS] = LETTERS; // Letters to tally, in uppercase char lowercase[NUM_LETTERS]; // Letters to tally, in lowercase int tallies[NUM_LETTERS] = { 0 }; // Tallies of those letters int i, j; // Counter variables for loops int ch; // The next input character // Set up the lowercase letters for (i = 0; i < NUM_LETTERS; i++) lowercase[i] = tolower (uppercase[i]); // Scan the input while ((ch = getchar()) != EOF) { // For each letter for (i = 0; i < NUM_LETTERS; i++) { if ((ch == lowercase[i]) || (ch == uppercase[i])) { ++tallies[i]; break; } // if we match character i } // for each letter } // while // Print the table for (i = 0; i < NUM_LETTERS; i++) { printf ("%c (%02d): ", uppercase[i], tallies[i]); for (j = 0; j < tallies[i]; j++) { if ((j > 0) && (j%50 == 0)) printf ("\n "); printf ("*"); } // for printf ("\n"); } // for // And that's it. return EXIT_SUCCESS; } // main