课程回顾

2作业讲解

3 指针复习

(1)     返回栈区地址

(错

(对

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

( tmp指针给堆空间赋值,最后堆区没有释放

04 指针复习_2

(注意:strcpy的第一个参数虽然没有* 但是实际操作的是指针所指向的内存,即:堆区的内存

案例:

(p没有指向空间,所以段错误

5 二级指针做形参

07_快译通案例:单词的存储

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]%s\n", 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("没有此单词: %s\n", key);

}

else

{

printf("[%s]的解释为: %s\n", key, content);

}

}

//3、释放空间

free_dict(p);

return 0;

}

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

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

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

  1. c语言 程序循环,C语言程序设计-循环例子

    <C语言程序设计-循环例子>由会员分享,可在线阅读,更多相关<C语言程序设计-循环例子(28页珍藏版)>请在人人文库网上搜索. 1.C 语言程序设计基础篇,第 7 章 简单程序 ...

  2. 最初编写的c语言程序称为,C语言程序设计复习参考答案

    <C语言程序设计复习参考答案>由会员分享,可在线阅读,更多相关<C语言程序设计复习参考答案(46页珍藏版)>请在人人文库网上搜索. 1.随堂练习12]1. 下面哪些标识符属于合 ...

  3. 好听的歌曲单片机c语言程序,单片机C语言程序举例(三)

    原标题:单片机C语言程序举例(三) 14.音乐播放 //此程序在硬件上调试通过 //本程序的晶振采用11.0592M #include sbit speaker=P1^2; unsigned char ...

  4. c语言程序教,C语言程序设计教学方法

    摘 要:C语言程序设计课程的教学实践,提出了教学方法. 关键词:C语言 教学方法 探讨 1 明确学习目的,调动学习积极性 在讲述C语言概述时,着重强调计算机语言学习的重要性和必要性.首先,C语言是其它 ...

  5. 步进电机循环脉冲c语言程序,基于C语言的步进电机调速.doc

    课 程 设 计 (论文) 题目 基于C语言的步进电机调速 目 录 0. 前言3 1.基本理论4 2. 方案设计4 2.1 步进电机5 2.2 8255芯片5 3. 硬件电路的工作原理5 3.1 步进电 ...

  6. 简单说明c语言程序步骤,C语言的入门简介和三个简单的C语言程序详细说明

    学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好.Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器.宏汇编.连接器.库管理和一个功能强大的仿真调试器等在 ...

  7. c语言程序前言,C语言 程序代码编写规范前言

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性 ...

  8. c语言程序基本设计,C语言程序的设计基本6.ppt

    C语言程序的设计基本6 第六章 本章要点 建立循环程序设计的基本概念和逻辑思维 掌握循环程序设计的方法 6.1 if-goto 语句循环 一般形式: goto 标号: 标号:语句 其中:标号用标识符表 ...

  9. c语言 程序结集,c语言(结体程序设计).doc

    c语言(结体程序设计) C语言程序设计实验报告 实验七.结构体程序设计 [实验目的] (1)掌握结构体类型的概念.定义和使用: (2)掌握结构体数组.结构体指针的定义和使用: [实验内容及步骤] 1. ...

  10. 情人节c语言程序,情人节c语言代码.doc

    情人节c语言代码 篇一:一些简单的C语言程序代码 由键盘任意输入1个4位数整数,分别输出其中的个位.十位.百位.千位. /* expe 3-10 */ #include #include void m ...

最新文章

  1. TIOBE 9 月编程语言排行榜发布,C++ 增速最快,C++20 的功劳?
  2. 电商直播团队,管理好团队就成功了一半
  3. VMware(VMDebugger)导致VS2010启动慢的解决办法
  4. Java——多线程(死锁)
  5. linux 管道文件上机总结,[转载]LINUX 管道 fifo 等总结
  6. Python 和 egg 文件
  7. python 判断文件夹是否存在 否则创建_10行Python代码自动清理电脑内重复文件,解放双手!...
  8. Atitit 利用前端cache indexdb localStorage 缓存提升性能优化attilax总结 1.1. indexdb 更加强大点,但是结果测试,api比较繁琐 使用叫麻烦些 1
  9. php英语参考文献,英文参考文献
  10. DICOM的窗宽和窗位,斜率和截距
  11. 自己动手写CPU(8)——简单算术操作指令的实现
  12. 后端速成JavaScript
  13. 用pxe给服务器装系统,使用pxe方式安装系统
  14. python excel数据处理教程pdf_python对excel操作详解.pdf
  15. 电子邮件注册网站是什么,163电子邮件注册流程详解
  16. ethz_aslam_cv2(一) 简介
  17. HCIP第十三天笔记
  18. 公众互助云的典范:Testin开放众包自动化云测试服务
  19. 优化神经网络训练的17种方法
  20. 文档翻译-批量翻译文档的软件哪些?

热门文章

  1. JAVA仿QQ登录界面
  2. 流放者柯南自建服务器 linux,流放者柯南自建服务器教程 怎么创建自己的服务器_游侠网...
  3. 奇了怪?OPPO怎么不用流量明星了?
  4. keil 5支持 LPC1114FBD48/302,1
  5. 青海省计算机考试准考证2022
  6. Postman异步请求
  7. php ajax返回值会打印出来,ajax返回值有php字符
  8. 网心云容器魔方在iStoreOS下的多开
  9. CATIA转的STP打开什么都没有_CATIA教程之常见去参方法
  10. 2019江西高中计算机学业水平考试,南昌市2019年上半年普通高中学业水平考试本月21日开考...