c语言程序翻译软件,C语言基础 (15) 翻译软件

课程回顾

73daf1490923f7ac15fb8e80872880b8.png

2作业讲解

3 指针复习

(1)     返回栈区地址

549cf74e4705d402f5fbc4130fe9776f.png

(错

14fdc5d77c34fc76d2c4e0e65f3b110d.png

(错,p一直是空的,同时引起堆区空间没释放

7fa389ee99cf5adb6a3994efab18e539.png

04 指针复习_2

d5211d43c61a30da866a6cdcafe30ca8.png

35440ac7c650f03ee548c8fafcd083b0.png

070fb3667db7460342c555e4ddee810f.png

08_快译通案例:单词遍历

09_快译通案例:释放堆区空间

10_快译通案例:单词查询

#include

#include

#include

#define MAX 3

struct dict

{

char *key;

char *content;

};

void get_dict(struct dict **tmp)

{

//在堆区分配MAX个结构体空间

*tmp = (struct dict *)malloc(MAX * sizeof(struct dict));

if (*tmp == NULL)

{

return;

}

//需要给每个结构体设置内容

//第0个结构体

//放第0个单词

(*tmp)[0].key = (char *)malloc(strlen(“a”) + 1);

strcpy((*tmp)[0].key, “a”);

//放第0个单词的解析

(*(*tmp + 0)).content = (char *)malloc(strlen(“art.字母a”) + 1);

//第1个结构体

(*tmp)[1].key = (char *)malloc(strlen(“a.m.”) + 1);

strcpy((*tmp)[1].key, “a.m.”);

//放第1个单词的解析

(*(*tmp + 1)).content = (char *)malloc(strlen(“a啊实打解析实的字母a”) + 1);

//第1个结构体

(*tmp)[2].key = (char *)malloc(strlen(“abandon”) + 1);

strcpy((*tmp)[2].key, “abandon”);

//放第2个单词的解析

(*(*tmp + 2)).content = (char *)malloc(strlen(“抛弃、放弃”) + 1);

}

void print_dict(struct dict *tmp)

{

int i = 0;

for (i = 0; i < MAX; i++)

{

printf(“[%s]%sn”, tmp[i].key, tmp[i].content);

}

}

void free_dict(struct dict *tmp)

{

//先释放成员变量

int i = 0;

for (i = 0; i < MAX; i++)

{

if (tmp[i].key != NULL)

{

free(tmp[i].key);

tmp[i].key = NULL;

}

if (tmp[i].content != NULL)

{

free(tmp[i].content);

tmp[i].content = NULL;

}

}

//再释放结构体指针变量

free(tmp);

tmp = NULL;

}

int search_dict(struct dict *tmp, char *key, char *content)

{

int i = 0;

for (i = 0; i < MAX; i++)

{

if (strcmp(tmp[i].key, key) == 0)

{

strcpy(content, tmp[i].content);

return 1;

}

}

return 0;

}

int main(int argc, char const *argv[])

{

struct dict *p = NULL;

//1、给p分配空间,分配完空间后,需要设置内容

get_dict(&p);

//2、遍历单词

// print_dict(p);

//查询功能

char key[1024];     //单词

char content[1024]; //单词解析

while (1)

{

printf(“请输入需要查询单词”);

scanf(“%s”, key);

if (strcmp(key, “break”) == 0)

{

break;

}

//如果有返回真,没有返回假

int flag = search_dict(p, key, content);

if (flag == 0)

{

printf(“没有此单词: %sn”, key);

}

else

{

printf(“[%s]的解释为: %sn”, key, content);

}

}

//3、释放空间

free_dict(p);

return 0;

}

11_快译通案例:代码引导

12_快译通案例:代码编译运行

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览114012 人正在系统学习中 相关资源:陈式太极拳教学软件+注册机1-专业指导文档类资源-CSDN文库

来源:陈安研究员

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月16日
下一篇 2021年4月16日

相关推荐