1: /* wc line and word count */
   2: 
   3: #include <stdio.h>
   4: 
   5: main(argc, argv)
   6: char **argv;
   7: {
   8:     int i, token;
   9:     register FILE *fp;
  10:     long linect, wordct, charct;
  11:     long tlinect=0, twordct=0, tcharct=0;
  12:     char *wd;
  13:     register int c;
  14: 
  15:     wd = "lwc";
  16:     if(argc > 1 && *argv[1] == '-') {
  17:         wd = ++argv[1];
  18:         argc--;
  19:         argv++;
  20:     }
  21: 
  22:     i = 1;
  23:     fp = stdin;
  24:     do {
  25:         if(argc>1 && (fp=fopen(argv[i], "r")) == NULL) {
  26:             fprintf(stderr, "wc: can't open %s\n", argv[i]);
  27:             continue;
  28:         }
  29:         linect = 0;
  30:         wordct = 0;
  31:         charct = 0;
  32:         token = 0;
  33:         for(;;) {
  34:             c = getc(fp);
  35:             if (c == EOF)
  36:                 break;
  37:             charct++;
  38:             if(' '<c&&c<0177) {
  39:                 if(!token) {
  40:                     wordct++;
  41:                     token++;
  42:                 }
  43:                 continue;
  44:             }
  45:             if(c=='\n')
  46:                 linect++;
  47:             else if(c!=' '&&c!='\t')
  48:                 continue;
  49:             token = 0;
  50:         }
  51:         /* print lines, words, chars */
  52:         wcp(wd, charct, wordct, linect);
  53:         if(argc>1) {
  54:             printf(" %s\n", argv[i]);
  55:         } else
  56:             printf("\n");
  57:         fclose(fp);
  58:         tlinect += linect;
  59:         twordct += wordct;
  60:         tcharct += charct;
  61:     } while(++i<argc);
  62:     if(argc > 2) {
  63:         wcp(wd, tcharct, twordct, tlinect);
  64:         printf(" total\n");
  65:     }
  66:     exit(0);
  67: }
  68: 
  69: wcp(wd, charct, wordct, linect)
  70: register char *wd;
  71: long charct; long wordct; long linect;
  72: {
  73:     while (*wd) switch (*wd++) {
  74:     case 'l':
  75:         printf("%7ld", linect);
  76:         break;
  77: 
  78:     case 'w':
  79:         printf("%7ld ", wordct);
  80:         break;
  81: 
  82:     case 'c':
  83:         printf("%7ld", charct);
  84:         break;
  85:     }
  86: }

Defined functions

main defined in line 5; never used
wcp defined in line 69; used 2 times
Last modified: 1979-01-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 517
Valid CSS Valid XHTML 1.0 Strict