汉字翻译c语言 您所在的位置:网站首页 c语言翻译成中文在线 汉字翻译c语言

汉字翻译c语言

#汉字翻译c语言| 来源: 网络整理| 查看: 265

课程回顾

9682511f536d80ecd2549a2724486311.png

73daf1490923f7ac15fb8e80872880b8.png

2作业讲解

3 指针复习

(1)     返回栈区地址

d8c766b08c99175306595325520e4946.png

549cf74e4705d402f5fbc4130fe9776f.png

(错

c70bf6cfb9b6fb4769bcff32da9a21a4.png

(对

14fdc5d77c34fc76d2c4e0e65f3b110d.png

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

9f03742596ae8cc64bf34db602603190.png

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

7fa389ee99cf5adb6a3994efab18e539.png

04 指针复习_2

c35b1e2a56197ef7f5f55d800f0622c9.png

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

案例:

d5211d43c61a30da866a6cdcafe30ca8.png

5bd1bfdc35744e2e2d62fb9c0236874e.png

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

5 二级指针做形参

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

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]%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_快译通案例:代码编译运行



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有