计算单词出现的频率C语言实现的
来源:互联网 发布:大数据架构师招聘 编辑:程序博客网 时间:2024/04/28 01:14
这个就不多说,纯干货:
先看看这个文件的结构吧
具体的代码如下:
add_word.c 加入单词
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "word_manage_p.h"static void shift_array(int index){ int src; for (src = num_of_word -1;src >= index; src--) { word_array[src+1] = word_array[src]; } num_of_word++;}static char *my_strdup(char *src){ char *dest; dest = malloc(sizeof(char) * (strlen(src)+1)); strcpy(dest,src); return dest;}void add_word(char *word){ int i; int result; for(i =0; i< num_of_word; i++) { result = strcmp(word_array[i].name,word); if(result >= 0) break; } if(num_of_word != 0 && result ==0 ) { word_array[i].count++; } else { shift_array(i); word_array[i].name = my_strdup(word); word_array[i].count = 1; }}dump_word.c 输出结果
include <stdio.h>#include "word_manage_p.h"void dump_word(FILE *fp){ int i; for (i = 0; i < num_of_word; i++) { fprintf(fp,"%-20s%d\n",word_array[i],word_array[i].count); }}finalize.c
#include <stdlib.h>#include "word_manage_p.h"Word word_array[WORD_NUM_MAX];int num_of_word;void word_initialize(void){ num_of_word = 0;}initialize.c
#include <stdlib.h>#include "word_manage_p.h"void word_finalize(void){ int i; for(i = 0; i < num_of_word;i++) { free(word_array[i].name); } num_of_word = 0;}main.c
#include <stdio.h>#include <stdlib.h>#include "get_word.h"#include "word_manage.h"#define WORD_LEN_MAX (1024)int main(int argc, char **argv){ char buf[WORD_LEN_MAX]; FILE *fp; if(argc == 1) { fp = stdin; } else { fp = fopen(argv[1],"r"); if( fp == NULL) { fprintf(stderr," %s %s can not open.\n",argv[0],argv[1]); exit(1); } } word_initialize(); while(get_word(buf,WORD_LEN_MAX,fp)!= EOF) { add_word(buf); } dump_word(stdout); word_finalize(); return 0;}头文件如下:
word_manage.h
#ifndef WORD_MANAGE_H_INCLUDED#define WORD_MANAGE_H_INCLUDED#include <stdio.h>void word_initialize(void);void add_word(char *word);void dump_word(FILE *fp);void word_finalize(void);#endifword_manage_p.h
ifndef WORD_MANAGE_P_H_INCLUDED#define WORD_MANAGE_P_H_INCLUDED#include "word_manage.h"typedef struct { char *name; int count;}Word;#define WORD_NUM_MAX (10000)extern Word word_array[];extern int num_of_word;#endifget_word.h
#ifndef GET_WORD_H_INCLUDE#define GET_WORD_H_INCLUDEint get_word(char *buf, int size, FILE *stream);#endif
gcc *.c -o count
可以生成
count可执行文件
下面用一个文件进行测试
test的内容如下:
Then the programmers add the pragmas in source code to direct the compiler explicitly. The action of compiler can be controlled by programmers to generate ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
运行程序如下:
0 0
- 计算单词出现的频率C语言实现的
- 计算单词出现的频率C语言实现的
- 计算单词出现的频率
- C语言通过二叉树实现单词出现频率的统计
- 有关统计单词频率的算法c语言实现
- 有关统计单词频率的算法c语言实现
- 有关统计单词频率的算法c语言实现
- 单词频率的计算
- 计算单词的频率
- Spark Streaming实现实时WordCount,DStream的使用,updateStateByKey(func)实现累计计算单词出现频率
- Strom+Kafka + redis实时计算单词出现频率的案例
- C语言输入英文统计单词的出现的频率排序
- python实现统计文本中单词出现的频率
- C语言实现的统计一个单词在文章中的频率
- 计算一篇文章中单词出现的频率,并把输出频率最高的十五个单词输出来
- C语言 -- 计算一个数组中每个元素出现的频率
- spark计算单词的相对频率
- 利用树统计单词出现的频率
- Chrome神器Vimium快捷键学习记录
- Spring AOP
- 2017年1/12初读C++primer笔记
- CentOS6.5之Java开发环境—JDK1.8的安装配置—逆袭必备
- 远程仓库
- 计算单词出现的频率C语言实现的
- 分组密码——DES加密算法
- Vim命令合集
- xxs攻击
- JS简单的按钮秒表计时器1
- LA 3218 Find the Border PSLG *
- VS2013编译器的安装
- 在编辑页面中选中复选框
- [POJ1830]开关问题(高斯消元)