用c语言文件编写关键字中英翻译机,c语言关键字中英翻译机,要求创建文件搜索...

该程序使用结构链表实现中英文关键字的翻译功能。通过递归菜单,用户可以选择创建字典、显示字典、输入英文或中文查询对应翻译。程序具备文件读写功能,支持覆盖或追加模式。异常处理通过函数返回值进行判断。
摘要由CSDN通过智能技术生成

程序使用结构链表实现。

由于我写的函数已经自动识别中英文输入,中英文翻译功能其实可以合并成一个选项(3,4选项),但你题目既然要求2项目,所以没合并。

根据题目,创建字典是覆盖性,既每次创建输入,都会覆盖掉原文件,但考虑后期扩展,我的函数writeFile可以不覆盖,在原文件后新增,具体看备注。

菜单显示是利用递归函数,如果你想新增功能,参照我选项改。

(另外所有函数异常,我都是采取抛出,没有处理,你想处理根据我的函数返回值写处理吧!)

#include

#include

#include

#define FPATH "C:\\keyWord.txt"

typedef struct keyWord

{

char kwCN[20];// 中文名

char kwEN[10];// 英文名

struct keyWord *next;

}KW;

void freeKWS(KW *kwsHead);//释放链表内存

int createDictionary(char *path);//创建字典。成功返回1 失败返回0

int writeFile(char *path,KW *kwsHead,int flag);//写入文件。成功返回1,失败返回0。flag:0新增;1修改或删除

KW *readFile(char *path);//读取文件。成功返回头节点,失败返回NULL。

int isCN(char *strCN);//判断字符串是否是全中文,是返回1,否返回0

void showKWS(char *path,char*keyCN,char *keyEN);//参数全部传NULL打印整个链表。keyCN!=NULL打印对应英文,keyZN!=NULL打印对应中文

void showMenu(int n);//递归函数打印菜单,第一次调用传值-1

void selectByKey(char *keyN);//输入中文输出英文,输入英文输出中,自动识别中英文关键字

int main()

{

//createDictionary("C:\\keyWord.txt");

//showKWS(NULL,NULL);

showMenu(-1);

}

void showMenu(int n)//打印菜单

{

ch

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现思路: 1. 定义一个结构体,用来存储C语言关键字中英文翻译对应关系。 2. 读取用户输入的C语言关键字。 3. 在结构体中查找对应的中英文翻译,输出结果。 代码实现: ```c #include <stdio.h> #include <string.h> // 定义结构体存储中英文翻译对应关系 struct keywords { char cn[20]; char en[20]; } keywords[] = { {"自动", "auto"}, {"双精度", "double"}, {"枚举", "enum"}, {"浮点", "float"}, {"整型", "int"}, {"长整型", "long"}, {"短整型", "short"}, {"有符号", "signed"}, {"无符号", "unsigned"}, {"结构体", "struct"}, {"联合", "union"}, {"空类型", "void"}, {"布尔类型", "bool"}, {"字符类型", "char"}, {"常量", "const"}, {"指针", "pointer"}, {"函数", "function"}, {"返回值", "return"}, {"大小", "sizeOf"}, {"静态", "static"} }; int main() { char input[20]; printf("请输入C语言关键字:"); scanf("%s", input); int i; for (i = 0; i < sizeof(keywords) / sizeof(struct keywords); i++) { if (strcmp(keywords[i].cn, input) == 0) { printf("%s 对应的英文关键字为 %s\n", keywords[i].cn, keywords[i].en); break; } else if (strcmp(keywords[i].en, input) == 0) { printf("%s 对应的中文关键字为 %s\n", keywords[i].en, keywords[i].cn); break; } } if (i == sizeof(keywords) / sizeof(struct keywords)) { printf("未找到对应的关键字!\n"); } return 0; } ``` 运行效果: ``` 请输入C语言关键字:整型 整型 对应的英文关键字为 int ``` ``` 请输入C语言关键字:unsigned unsigned 对应的中文关键字为 无符号 ``` ``` 请输入C语言关键字:test 未找到对应的关键字! ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值