/*  cc.c zaehlt Charaktere (Zeichen), "White Space", Zeilen und Woerter
    einer Datei. Aus: Kernighan-Ritchie */
#include <stdio.h>
int main() {
  int  c, cc, bc, nc, wc;  /* Zaehler fuer char's, blanks, newlines, Woerter */
  int in_wort = 0;         /* Anzeige, ob gerade ein Wort gelesen wird       */
  cc = bc = nc = wc = 0;   /* Initialisieren der Zaehler                     */
  while ( ( c=getchar() ) != EOF) {
    cc++;                  /* Abkuerzung fuer: cc = cc+1; */
    switch(c) {
      case '\n':
        nc++, bc++; in_wort = 0; break; /* Newline- und Blank-Zaehler erhoehen
                                             sicher liegt kein Wort vor */
      case '\t':                        /* Tabulator, Leerzeichen       */
      case ' ':
        bc++; in_wort = 0; break;         /* blank-Zaehler erhoehen     */
      default:                        /* kein newline, tab oder blank   */
        if (in_wort == 0) {    /* bisher kein Wort? Also beginnt eins:  */
          in_wort = 1; wc++;  }
    }
  }
  printf("%d Char's, %d  Whites, %d Woerter, %d Newlines\n", cc, bc, wc, nc);
}
