《[2017年整理]数据结构单词统计》由会员分享,可在线阅读,更多相关《[2017年整理]数据结构单词统计(4页珍藏版)》请在金锄头文库上搜索。
1、数据结构单词统计程序:#include #include #include int main()FILE *fp;char *word, ch, *buf;int length, i, j, k, sign_w, same, number_w = 0, num = 0;if(fp = fopen(text.txt, rb) = NULL)printf(cannot open text.txt!n);return 0;/*把文件指针移到文件尾 */if(!fseek(fp, 0, SEEK_END)length = ftell(fp); / 获取文件长度elsefclose(fp);printf
2、(1: fseek error!n);return 0;/*把文件指针移到文件头 */if(fseek(fp, 0, SEEK_SET) fclose(fp);printf(2: fseek error!n);return 0; if(buf = (char *)malloc(sizeof(char) * (length + 1) / +1 是为了把 buf 分配的足够大memset(buf, 0, (length + 1); / 把 buf 清 0 fread(buf, 1, length, fp); / 把文件内容全部读到 buf 中fclose(fp); else fclose(fp);
3、fprintf(stderr, malloc error!n);return 0;/*统计总的单词个数*/sign_w = 1;for(i = 0; i = A & ch = a & ch = A & ch = a & ch = z)wordkj+ = ch;sign_w = 0;else if(!sign_w)k+;j = 0;sign_w = 1;free(buf);/*计算每个单词的个数*/for(i = 0; i number_w; i+)/*判断此单词是否和前面统计过的单词相同 */same = 0;for(j = 0; j i; j+)if(!strcmp(wordi, wordj)same = 1;break;/*统计从没有统计过的单词个数 */if(!same) num = 0;for(j = i; j number_w; j+)if(!strcmp(wordi, wordj)num+;printf(%s : %dn, wordi, num);free(word);return 1;