aboutsummaryrefslogtreecommitdiff
path: root/6.1/main.c
diff options
context:
space:
mode:
Diffstat (limited to '6.1/main.c')
-rw-r--r--6.1/main.c70
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;
+}