统计输入中关键词出现的次数(二分查找实现)
2012-08-05 14:51
211 查看
/* 统计输入的c语言中关键词出现的次数 * @method: 使用二分查找实现,keytab[]关键词必须是按首字母排好序的关键词表 */ #include<stdio.h> #include<stdlib.h> #include<ctype.h> #include<string.h> struct key { char *word; int count; } keytab[] = { "char", 0, "int", 0, "void", 0 }; #define MAXWORD 100 #define NKEYS (sizeof keytab / sizeof keytab[0]) int getword(char *, int); int binsearch(char *, struct key *, int); main() { int n; char word[MAXWORD]; while(getword(word, MAXWORD) != EOF) if(isalpha(word[0])) if((n = binsearch(word, keytab, NKEYS)) >= 0) keytab .count++; for(n = 0; n < NKEYS; n++) //if(keytab .count > 0) printf("%4d %s\n", keytab .count, keytab .word); return 0; } /* 根据首字母顺序进行二分查找,tab[]必须是有序的 */ int binsearch(char *word, struct key tab[], int n) { int cond; int low, high, mid; low = 0; high = n-1; while(low <= high) { mid = (low+high)/2; if((cond = strcmp(word, tab[mid].word)) < 0) high = mid - 1; else if(cond > 0) low = mid + 1; else return mid; } return -1; } /* 从输入中读取下一个单词*/ int getword(char *word, int lim) { int c; //void ungetch(int); char *w = word; while(isspace(c = getchar())) //检查参数c是否为空格字符,即为下一个字母的开始 ; if(c != EOF) *w++ = c; if(!isalpha(c)) //判断字符变量c是否为字母 { *w = '\0'; return c; } for(; --lim > 0; w++) if(!isalnum(*w = getchar())) //判断字符变量c是否为字母或数字 { //ungetch(*w); break; } *w = '\0'; return word[0]; }
相关文章推荐
- Java实现读取键盘输入保存到txt文件,再统计并输出每个单词出现次数的方法
- 利用Map实现的统计每个输入字符串或则单词出现的次数
- java实现统计输入一行string中统计其中各个字符出现的次数
- 利用C语言实现:输入两个字符串,统计一个字符串在另一个字符串中出现的次数 。
- 统计输入中所有单词出现的次数(使用二叉查找树实现:递归和非递归)
- JavaScript实现点击出现图片并统计点击次数功能示例
- 编写一个程序统计输入字符串中: 各个数字、空白字符、以及其他所有字符出现的次数
- java实现读取一篇英文文章,统计其中每个单词出现的次数并排序输出
- Java实现统计一篇文章中每个单词出现的次数
- 统计单词出现的次数,Java实现
- Java实现 统计单词出现的次数并按照单词频率从高到低输出
- C语言:编写一个程序统计输入字符串中,各个数字、空白字符、以及其他所有字符出现的次数。
- 集合框架_统计字符串中每个字符出现的次数案例代码实现
- 对于给定的一个字符串,统计其中数字字符出现的次数。输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
- Python实现统计给定列表中指定数字出现次数的方法
- 字符出现次数统计直方图-Java实现
- 统计一个长度为2的子字符串在另一个字符串中出现的次数.例如:假定输入的字符串为“asd asasdfg asd as zx67 asd mklo”,子字符串为“as”,函数返回值为6。
- 【CVTE】请使用原声Javascript实现一个方法,判断html中出现次数最多的标签,并统计这个次数
- Java实现——统计文件中字符串出现次数
- 一个用于统计输入中各个C语言关键字出现次数的程序