diff options
Diffstat (limited to '6.1/main.c')
-rw-r--r-- | 6.1/main.c | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/6.1/main.c b/6.1/main.c new file mode 100644 index 0000000..ce53539 --- /dev/null +++ b/6.1/main.c @@ -0,0 +1,70 @@ +#include <stdio.h> +#include <ctype.h> +#include "word.h" +#include "key.h" + +#define MAXWORD 100 + +struct key keytab[] = { + "#define", 0, + "#elif", 0, + "#else", 0, + "#endif", 0, + "#error", 0, + "#if", 0, + "#ifdef", 0, + "#ifndef", 0, + "#include", 0, + "#pragma", 0, + "#undef", 0, + "auto", 0, + "break", 0, + "case", 0, + "char", 0, + "const", 0, + "continue", 0, + "default", 0, + "do", 0, + "double", 0, + "else", 0, + "enum", 0, + "extern", 0, + "float", 0, + "for", 0, + "goto", 0, + "if", 0, + "int", 0, + "long", 0, + "register", 0, + "return", 0, + "short", 0, + "signed", 0, + "sizeof", 0, + "static", 0, + "struct", 0, + "switch", 0, + "typedef", 0, + "union", 0, + "unsigned", 0, + "void", 0, + "volatile", 0, + "while", 0, +}; + +int main(void) +{ + int n; + char word[MAXWORD]; + + while (getword(word, MAXWORD) != EOF) + if (isalpha(word[0]) || word[0] == '#') + if ((n = bsearch(word, keytab, NKEYS)) >= 0) + keytab[n].count++; + + for (n = 0; n < NKEYS; ++n) + if(keytab[n].count > 0) + printf("%4d %s\n", + keytab[n].count, keytab[n].word); + + return 0; +} |