展开全部

//新建一个字典文本文件,命名为: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语言做一个简单的英语词典相关推荐

  1. python制作英语字典_如何用Python,制作一个属于自己的、独一无二的英文字典?...

    此例用到了Python中的列表和字典等数据类型,以及二分算法. 二分算法,是基于已经排好顺序的元素:初始化你的英文字典. 显示函数:把你字典中所有单词和释义都打印出来. 输入函数:分别输入单词和释义, ...

  2. python脚本中执行另一个脚本_如何用python调用另一个python脚本?

    如果想要将已经设置好的内容,在转移到另一个位置要怎么做呢?小编能写到的方法有,照抄,复制,以及转移使用.在我们日常办公上是非常好理解的,就是ctr v,但是如果想在编程上,将某一位置拿去到别的项目上使 ...

  3. lisp语言画阿基米德线_如何用VB语言Line方法绘制阿基米德螺线

    展开全部 我是用picturebox实现的 (1)先用打开notepad,粘贴下面e69da5e887aa3231313335323631343130323136353331333236393832的 ...

  4. ipfs如何查找一个文件的_如何用 1 分钟遍历一个 100TB 的文件?

    如果你在面试的时候遇到这样一个问题:如何用 1 分钟遍历一个 100TB 的文件?是不是立刻就懵圈了?不要紧,读了今天的文章,懵圈的可能是面试官.以下是全文. 文件及硬盘管理是计算机操作系统的重要组成 ...

  5. 纯java语言做rpg游戏_【纯JAVA语言做个RPG游戏】2.游戏界面及角色移动的基本实现...

    继上次做的地图编辑器,我大致的做了一个4000X4000的游戏地图数组,不过只画了一部分,以后要加什么新东西继续编辑这个地图就行了,保存在了一个文件中. 现在便可以继续下一步,做出游戏的大致界面了. ...

  6. 简单几段python代码_如何用python跑一段鸿蒙最简单代码?

    首先,鸿蒙并不支持python,HarmonyOS代码开发支持多语言,包括Java.XML(Extensible Markup Language).C/C++ . JS(JavaScript).CSS ...

  7. python搭建自动化测试平台_如何用python语言搭建自动化测试环境

    原标题:如何用python语言搭建自动化测试环境 技术分享:基于Python语言的Web自动化测试环境搭建 近期发现很多初学者在学习自动化的过程当中,在环境安装环节总是出现问题,所以详细的出一篇环境搭 ...

  8. python中怎么画一个机器猫_如何用Python画一只机器猫?

    作者 | 人邮异步社区 责编 | 胡巍巍 出品 | CSDN博客 自信心是成功的源泉,对刚入门编程行业的初级程序员来说,多敲代码多做项目就是构建自信心的最好办法. 第一次学编程是在屏幕上敲出" ...

  9. c语言偶数分解成两个素数,如何用C语言验证2000以内的哥德巴赫猜想,对于任何大于4的偶数均可以分解为两个素数之和....

    题目: 如何用C语言验证2000以内的哥德巴赫猜想,对于任何大于4的偶数均可以分解为两个素数之和. 我是大一新生,代码不能太复杂 解答: //首先生成质数表,然后双重循环输出2000以内所有偶数的两个 ...

最新文章

  1. [微信小程序]提交表单返回成功后自动清空表单的值
  2. 我的MYSQL学习心得(六) 函数
  3. delphi之http通讯
  4. staem被盗_如何检查照片是否被盗
  5. linux下日志晒选打包,Linux 文件日志筛选操作
  6. MVVM 下 ContextMenu的命令绑定
  7. python绘制时间轴_MatPlotLib动态时间轴
  8. python语句print(type)的输出结果是_Python语句print(type({ }))的输出结果是( )。_学小易找答案...
  9. wordpress用cdn_如何为WordPress创建自己的自托管CDN
  10. 9个有用的php功能
  11. 程序员的数学【概率论】
  12. 无线路由器关掉dhcp服务器,无线路由器关闭dhcp会好不好
  13. React组件化开发
  14. QGC 谷歌中国地图 火星坐标系 转换
  15. CIPS-3D 生成风格化的图像并控制人脸的姿势
  16. git具体作用_GIT的工作原理、功能特点及其运用
  17. mybatis一对多关联查询分页解决方案
  18. 2022-2027年中国海参行业市场深度分析及投资战略规划报告
  19. 如何做一款有灵魂的App——关于hope的启发以及对于追梦App的思考
  20. win7无法打开计算机共享文件夹,Win7共享文件夹无法访问怎么办?Win7共享文件夹无法访问解决方法...

热门文章

  1. Django及Flask漏洞合集
  2. 好程序员Java分享MySQL之SQL入门(一)
  3. 【性能测试】轻量级压测工具Hey
  4. osgearth仿真平台(1)
  5. ubuntu下命令行禁用笔记本触摸板
  6. 高斯金字塔和拉普拉斯金字塔实现图像融合
  7. http文件服务器(Ubuntu)
  8. 【appium报错】Original error:Could not proxy command to remote server. Original error:socket hang up
  9. 疫情之后,SaaS的春天就来了吗?
  10. mouseover和mouseenter的异同