英汉字典程序C语言,分享纯C语言英汉字典源码
近期深受开源的精神影响,并为之深深感动,想了很久,今天把我代码积累多年的一个“英汉字典”公布。
研一的时候因为无聊或者因为兴趣,做了一个纯C语言的英汉字典。核心算法是KMP快速查找算法,虽然有点长,但思想简单(我崇尚简单),基本思想为:当你输入某个英文时,如果字典收录了这个英文,会查出中文意思;如果没有收录,会提醒你输入中文意思。
做的时间比较久了,现在运行起来不是原本的意思,有空我会慢慢改进。
若你有心可以在此基础上改进,也可以告诉我哪里可以改进。谢谢!
/**************************
快速模式匹配---KMP算法
**************************/
#include
#define MAXSIZE 10000
typedef struct
{
char ch[MAXSIZE];
int length;
}Seqstr;
void Getnext(Seqstr p, int next[]);
void Kmp(Seqstr t, Seqstr p, int next[]);
void InputStr(Seqstr &str);
void OutputStr(Seqstr &str);
void FileToStr(FILE *fp, Seqstr &t);
int main(void)
{
int next[30];
FILE *fp;
Seqstr p, t;
p.length = 0;
t.length = 0;
InputStr(p);
OutputStr(p);
fp = fopen("word.txt", "r"); //InputStr(t);
if (fp != NULL)
{
FileToStr(fp, t);
fclose(fp);
OutputStr(t);
Getnext(p, next);
Kmp(t, p, next);
}
else
{
printf("can't open file!\n");
}
return 0;
}
void FileToStr(FILE *fp, Seqstr &str)
{
printf("input string from file...\n");
while (!feof(fp))
{
str.ch[str.length] = fgetc(fp);
str.length++;
}
str.ch[str.length] = '\0';
}
void InputStr(Seqstr &str)
{
char c;
printf("input a string:");
while((c = getchar()) != '\n')
{
str.ch[str.length] = c;
str.length++;
}
str.ch[str.length] = '\0';
}
void OutputStr(Seqstr &str)
{
int i = 0;
while(str.ch[i] != '\0')
{
printf("%c", str.ch[i]);
i++;
}
printf("\n");
}
void Kmp(Seqstr t, Seqstr p, int next[])
{
int i, j;
int appearTimes = 0;
int lines = 1;
i = 0;
j = 0;
while(i < t.length)
{
while (i < t.length && j < p.length)
{
if (j == -1 || t.ch[i] ==p.ch[j])
{
i++;
j++;
}
else
{
j = next[j];
}
if (t.ch[i] == '\n') //计算行数
{
lines++;
i++;
}
}//while
if(j == p.length) //首次出现的位置(return i-p.length)
{
appearTimes++;
printf("The %d times appear at line: %d\n", appearTimes, lines);
j = 0;
}
}//while
}
void Getnext(Seqstr p, int next[])
{
int i, j;
next[0] = -1;
i = 0;
j = -1;
while(i < p.length)
{
if(j == -1 || p.ch[i] == p.ch[j])
{
++i;
++j;
next[i] = j;
}
else
{
j = next[j];
}
}
for(i = 0; i < p.length; i++)
{
printf("next[%d] = %3d\n", i, next[i]);
}
printf("\n");
}
测试数据:
good好的
hi你好
英汉字典程序C语言,分享纯C语言英汉字典源码相关推荐
- java串口发送十六进制数,本文实例为大家分享了Java实现串口通信的具体代码,供大家参考,具体内容如下1.介绍使用Java实现的串口通信程序,支持十六进制数据的发送与接收。 源码:...
本文实例为大家分享了Java实现串口通信的具体代码,供大家参考,具体内容如下 1.介绍 使用Java实现的串口通信程序,支持十六进制数据的发送与接收. 源码:SerialPortDemo 效果图如下: ...
- 基于微信小程序共享停车位设计与实现SSM_car.rar(项目源码+数据库文件+微信小程序开发+后端java语言)
主要功能实现了共享车位的创建,车位的管管理,创建车辆.车辆的管理.附近车位.显示车位的编号,车位的位置,车位的状态,车位.可以查看订单记录车位.停费时间,确认时间计费的时间.可以删除,订单也可以确认是 ...
- java计算机毕业设计旅游信息分享网站MyBatis+系统+LW文档+源码+调试部署
java计算机毕业设计旅游信息分享网站MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计旅游信息分享网站MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目架构:B ...
- c语言打印空心数字图形,(完整word版)C语言编写打印实心和空心菱形【源码】
<(完整word版)C语言编写打印实心和空心菱形[源码]>由会员分享,可在线阅读,更多相关<(完整word版)C语言编写打印实心和空心菱形[源码](13页珍藏版)>请在人人文库 ...
- java计算机毕业设计分享网站MyBatis+系统+LW文档+源码+调试部署
java计算机毕业设计分享网站MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计分享网站MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目架构:B/S架构 开发语 ...
- 2021最新外卖霸王餐小程序、H5、微信公众号版外系统源码|霸王餐美团/饿了么系统 粉丝裂变玩源码下载
2021年了,你还在用淘宝客吗?赶紧跟上互联网的大势吧,外卖cps就是cps人群趋势! 个人.个体.企业均可使用 外卖霸王餐小程序.H5.微信公众号版外系统源码|霸王餐美团/饿了么系统 粉丝裂变玩 2 ...
- 美团饿了么外卖返利小程序公众号搭建外卖返利分销系统代cps源码
美团饿了么外卖返利小程序公众号搭建外卖返利分销系统代cps源码 外卖CPS小程序源码分享 饿了么.美团优惠开发(外卖cps,三级裂变源码) 源码或搭建 http://y.mybei.cn/ 截图 功能 ...
- 分享66个ASP上传下载源码,总有一款适合您
分享66个ASP上传下载源码,总有一款适合您 66个ASP上传下载源码下载链接:https://pan.baidu.com/s/1AAZA99BVNOFtVFIjnYl4XA?pwd=vyqa 提取 ...
- 分享66个PHP聊天室类源码,总有一款适合您
分享66个PHP聊天室类源码,总有一款适合您 66个PHP聊天室类源码下载链接:https://pan.baidu.com/s/1_Fbbc3WMVWN7jjgTRaCnXw?pwd=h75j 提取码 ...
最新文章
- cmd 文本替换_将CMD信息保存为文件
- 4.1.2 数据交换方式
- 文巾解题 15. 三数之和
- 4、使用PreparedStatement接口实现增,删,改操作(常用)
- echars 在vue v-if 切换会 显示不出来或者显示出来但是不是百分百显示
- 批量html转换成excel,Excel批量转为Html,Html转换成Excel - 软件教程网
- ARM汇编基础详解(PS学习汇编的原因)
- .NET之生成数据库全流程
- mysql 时间戳 2038_mysql数据库的timestamp为什么从1970到2038的某一时间?某一时间是指什么时间?过了这个时间之后怎么办?-问答-阿里云开发者社区-阿里云...
- Mac下安装Flink的local模式(flink-1.2.0)
- 如何使用txt文件实现JMeter参数化
- 系统学习 TypeScript(五)——联合类型
- YOLOv2-yolo9000-batter,faster,stronger 论文精读解析
- PS人像精修插件MUA Retouch Panel中文版(支持ps2021)
- 增长工程日 | 从战略到战术,如何搭建新消费品牌增长体系
- 计算机学院举办 温暖冬日 感恩社会 活动,E·活动 | 我院举办“温暖冬日,感恩社会”活动...
- 入门大数据就业前景怎么样?
- jsonObject.getString()解析任意字段均可强转为string
- 小芳同学的错题总结(十四)
- 学习就是这样一条时而郁郁寡欢,时而开怀大笑的路
热门文章
- jackson序列化首字母大写amp;jackson序列化结果字段名重复
- 在 F1 Delta Time 大奖赛中找到对速度的热爱
- F1Delta Time 大奖赛世界巡回赛来啦
- 物联网操作系统HelloX V1.83发布公告
- 51单片机的特殊功能寄存器
- 蜻蜓直播社交软件之蜻蜓s前端文件目录详解-开源系统蜻蜓s系统
- 基于 eBPF 的云原生可观测性深度实践
- Python文件的打开和关闭
- 第四届橙瓜网络文学奖二次元分类目前评分前四名竟然脑洞这么大?
- 北京市公安局“人工智能安全研究中心”和“关键信息基础设施保护中心”2022年公开招聘工作人员公告