用c语言简单办法做一个字典_如何用c语言做一个简单的英语词典
展开全部
//新建一个字典文本文件,命名为:dict.dat,内容格式如下: 或下载一个也可
//abandon v.抛弃,放32313133353236313431303231363533e59b9ee7ad9431333363396335弃
//abandonment n.放弃
//abbreviation n.缩写
//abeyance n.缓办,中止
//abide v.遵守
//ability n.能力
//able adj.有能力的,能干的
//abnormal adj.反常的,变态的
//aboard adv.船(车)上
//abolish v.废除,取消
//******************************
#include
#include
#include
struct NODE
{
char e[20];
char c[50];
struct NODE* pnext;
};
struct NODE* pN;
struct NODE* pHead=NULL;
struct NODE* pNode=NULL;
struct NODE* pNext=NULL;
struct NODE* pEnd=NULL;
FILE* open_dict()
{
FILE *fp;
if((fp=fopen("dict.dat","r"))==NULL)
{
printf("open dict error!\n");
return NULL;
}
return fp;
}
int getdata_from_dict(FILE* fp)
{
int i,j;
char buf[50];
while(1)
{
pN=(struct NODE*)malloc(sizeof(struct NODE));
memset(pN->c,'\0',50);
memset(pN->e,'\0',20);
pN->pnext=NULL;
if(fgets(buf,50,fp)==NULL)
{
fclose(fp);
break;
}
sscanf(buf,"%s %s",pN->e,pN->c);
if(pHead==NULL)
{
pHead=pN;
pNode=pN;
continue;
}
pNode->pnext=pN;
pNode=pN;
pEnd=pN;
}
return 1;
}
void write_dict()
{
FILE* fp=NULL;
if((fp=fopen("dict.dat","w"))==NULL)
{
printf("open dict error!\n");
return;
}
char buf[100]={'\0'};
pNode=pHead;
while(1)
{
if(pNode==NULL)
{
break;
}
fprintf(fp,"%s %s\n",pNode->e,pNode->c);
pNode=pNode->pnext;
}
fclose(fp);
}
void del(char* char_del)
{
struct NODE* pDel=pHead;
if(strcmp(pDel->e,char_del)==0)
{
pHead=pHead->pnext;
write_dict();
return ;
}
while(1)
{
if(strcmp(pDel->pnext->e,char_del)==0)
{
if(pDel->pnext->pnext!=NULL)
{
pDel->pnext=pDel->pnext->pnext;
}
else
{
pDel->pnext=NULL;
}
write_dict();
return ;
}
else
{
pDel=pDel->pnext;
if(pDel==NULL)
{
break;
}
}
}
printf("\n未找到该单词!\n");
return;
}
void add(char* char_add, char* char_add_chs)
{
pN=(struct NODE*)malloc(sizeof(struct NODE));
memset(pN->c,'\0',50);
memset(pN->e,'\0',20);
pN->pnext=NULL;
strcpy(pN->e,char_add);
strcpy(pN->c,char_add_chs);
pEnd->pnext=pN;
pEnd=pN;
pNode=pN;
write_dict();
}
int main(int argc, char *argv[])
{
FILE* fp=NULL;
fp=open_dict();
if(fp==NULL)
{
printf("读取字典失败! 程序将退出!");
getchar();
return 1;
}
getdata_from_dict(fp);
fclose(fp);
char buf[50]={'\0'};
while(1)
{
printf("\n\n{输入quit: 即退出, 输入del: 即删除, 输入add: 即增加}\n请输入英文单词 : ");
fflush(stdin);
scanf("%s",buf);
if(strcmp(buf,"quit:")==0)
{
break;
}
else if(strcmp(buf,"del:")==0)
{
char char_del[20]={'\0'};
printf("请输入要删除的单词:");
fflush(stdin);
scanf("%s",char_del);
del(char_del);
continue;
}
else if(strcmp(buf,"add:")==0)
{
char char_add[20]={'\0'};
char char_add_chs[100]={'\0'};
printf("\n请输入要增加的单词:");
fflush(stdin);
scanf("%s",char_add);
printf("\n请输入中文意思:");
fflush(stdin);
scanf("%[^\n]",char_add_chs);
add(char_add,char_add_chs);
continue;
}
pNode=pHead;
int find=0;
while(pNode!=NULL)
{
if(strcmp(pNode->e,buf)==0)
{
printf("\n%s",pNode->c);
find=1;
break;
}
pNode=pNode->pnext;
}
if(find==0)
{
printf("\n未找到!");
}
}
return 0;
}
用c语言简单办法做一个字典_如何用c语言做一个简单的英语词典相关推荐
- python制作英语字典_如何用Python,制作一个属于自己的、独一无二的英文字典?...
此例用到了Python中的列表和字典等数据类型,以及二分算法. 二分算法,是基于已经排好顺序的元素:初始化你的英文字典. 显示函数:把你字典中所有单词和释义都打印出来. 输入函数:分别输入单词和释义, ...
- python脚本中执行另一个脚本_如何用python调用另一个python脚本?
如果想要将已经设置好的内容,在转移到另一个位置要怎么做呢?小编能写到的方法有,照抄,复制,以及转移使用.在我们日常办公上是非常好理解的,就是ctr v,但是如果想在编程上,将某一位置拿去到别的项目上使 ...
- lisp语言画阿基米德线_如何用VB语言Line方法绘制阿基米德螺线
展开全部 我是用picturebox实现的 (1)先用打开notepad,粘贴下面e69da5e887aa3231313335323631343130323136353331333236393832的 ...
- ipfs如何查找一个文件的_如何用 1 分钟遍历一个 100TB 的文件?
如果你在面试的时候遇到这样一个问题:如何用 1 分钟遍历一个 100TB 的文件?是不是立刻就懵圈了?不要紧,读了今天的文章,懵圈的可能是面试官.以下是全文. 文件及硬盘管理是计算机操作系统的重要组成 ...
- 纯java语言做rpg游戏_【纯JAVA语言做个RPG游戏】2.游戏界面及角色移动的基本实现...
继上次做的地图编辑器,我大致的做了一个4000X4000的游戏地图数组,不过只画了一部分,以后要加什么新东西继续编辑这个地图就行了,保存在了一个文件中. 现在便可以继续下一步,做出游戏的大致界面了. ...
- 简单几段python代码_如何用python跑一段鸿蒙最简单代码?
首先,鸿蒙并不支持python,HarmonyOS代码开发支持多语言,包括Java.XML(Extensible Markup Language).C/C++ . JS(JavaScript).CSS ...
- python搭建自动化测试平台_如何用python语言搭建自动化测试环境
原标题:如何用python语言搭建自动化测试环境 技术分享:基于Python语言的Web自动化测试环境搭建 近期发现很多初学者在学习自动化的过程当中,在环境安装环节总是出现问题,所以详细的出一篇环境搭 ...
- python中怎么画一个机器猫_如何用Python画一只机器猫?
作者 | 人邮异步社区 责编 | 胡巍巍 出品 | CSDN博客 自信心是成功的源泉,对刚入门编程行业的初级程序员来说,多敲代码多做项目就是构建自信心的最好办法. 第一次学编程是在屏幕上敲出" ...
- c语言偶数分解成两个素数,如何用C语言验证2000以内的哥德巴赫猜想,对于任何大于4的偶数均可以分解为两个素数之和....
题目: 如何用C语言验证2000以内的哥德巴赫猜想,对于任何大于4的偶数均可以分解为两个素数之和. 我是大一新生,代码不能太复杂 解答: //首先生成质数表,然后双重循环输出2000以内所有偶数的两个 ...
最新文章
- [微信小程序]提交表单返回成功后自动清空表单的值
- 我的MYSQL学习心得(六) 函数
- delphi之http通讯
- staem被盗_如何检查照片是否被盗
- linux下日志晒选打包,Linux 文件日志筛选操作
- MVVM 下 ContextMenu的命令绑定
- python绘制时间轴_MatPlotLib动态时间轴
- python语句print(type)的输出结果是_Python语句print(type({ }))的输出结果是( )。_学小易找答案...
- wordpress用cdn_如何为WordPress创建自己的自托管CDN
- 9个有用的php功能
- 程序员的数学【概率论】
- 无线路由器关掉dhcp服务器,无线路由器关闭dhcp会好不好
- React组件化开发
- QGC 谷歌中国地图 火星坐标系 转换
- CIPS-3D 生成风格化的图像并控制人脸的姿势
- git具体作用_GIT的工作原理、功能特点及其运用
- mybatis一对多关联查询分页解决方案
- 2022-2027年中国海参行业市场深度分析及投资战略规划报告
- 如何做一款有灵魂的App——关于hope的启发以及对于追梦App的思考
- win7无法打开计算机共享文件夹,Win7共享文件夹无法访问怎么办?Win7共享文件夹无法访问解决方法...