Page 373 - Programming Microcontrollers in C
P. 373

358    Chapter 7  Advanced Topics

                       int count;
                       char letter;
                   }Entry;

                   int main()
                   {
                       int c,characters,i;
                       Entry letters[LETTERS];
                       double a,sum;


                       characters=0;
                       for(i=0;i<LETTERS;i++)
                       {
                        letters[i].count=0;
                        letters[i].letter=i+’a’;
                       }
                       letters[‘z’-’a’+1].letter=’>’;
                       letters[‘z’-’a’+2].letter=’<‘;

                       while((c=getchar())!=EOF)
                       {
                        c=tolower(c);
                        if(isalpha(c)||c==’ ‘||c==’\n’)
                        {
                          characters++;
                          if(c>=’a’&&c<=’z’) /* count the letters */
                                 letters[c-’a’].count++;
                          else if(c==’ ‘)
                                 letters[‘z’-’a’+1].count++; /* count the spaces */
                          else if(c==’\n’)
                                 letters[‘z’-’a’+2].count++; /* count the new lines */
                        }
                       }
                       /* got all of the data in and processes, print it out */
                       shellsort(letters,LETTERS);
                       printf(“\n\n”);
                       printf(“Char         Frequency        Char
   368   369   370   371   372   373   374   375   376   377   378