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