#include <stdio.h> #include <ctype.h> #include <string.h> #define NKEYS (sizeof keytab / sizeof(struct key)) struct key { char *word; int count; }; /*关键字列表(注意一定要按字典排序)*/ struct key keytab[15] = { "abort",0, "break",0, "clock",0, "define",0, "echo",0, "fgetc",0, "get",0, "help",0, "insert",0, "jump",0, "kind",0, "long",0, "malloc",0, "null",0, "operate",0 }; int binarysearch(char *word, struct key tab[], int n); int getword(char *word); /*<The C programming language (second edition) 中的小练习> 功能:统计输入文本中关键字出现的次数。 */ int main() { char word[30]; int n; while(getword(word) != 0 && strcmp(word,"quit") != 0) { if((n = binarysearch(word,keytab,NKEYS )) >= 0); keytab[n].count++; } for(n = 0; n < NKEYS; n++) { if(keytab[n].count > 0) printf("%s : %d\n",keytab[n].word,keytab[n].count); } return 0; } /*从输入端得到一个单词*/ int getword(char *word) { char c; int i = 0; while(isspace(c = getchar())) ; while(1) { if(c != '\n' && c != ' ' && c != '\t' && isalpha(c)) word[i++] = c; if(c == '\n' || c == ' ' ) { word[i] = '\0'; return i; } c = getchar(); } return i; } /*binarysearch 函数: 在tab[0]到tab[n]中查找单词*/ int binarysearch(char *word, struct key tab[], int n) { int mid,l,h,flag; l= 0; h = n - 1; while(l <= h) { mid = (l + h)/2; if( (flag = strcmp(word,tab[mid].word)) < 0) h = mid - 1; else if(flag > 0) l = mid + 1; else return mid; } return -1; }
C 语言统计关键字出现次数
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
python统计关键字出现次数 python统计词语出现次数
如何用Python统计含多个字符串的列表中每个单词出现的次数?
python统计关键字出现次数 python 字符串 分隔符 List