0
点赞
收藏
分享

微信扫一扫

QT案例词典 -- 存储内容及遍历


遗憾的是,两个人不能在一起,却偏偏相遇。。。

----  网易云热评

一、字典内容就三个词

a:第一个字母

b:第二个字母

C:第三个字母

#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_s((*tmp)[0].key,strlen("a")+1, "a");





(*tmp)[0].content = (char*)malloc(strlen("第一个字母") + 1);

strcpy_s((*tmp)[0].content, strlen("第一个字母") + 1, "第一个字母");









//第1个结构体,放第1个单词

(*tmp+1)->key = (char*)malloc(strlen("b") + 1);

strcpy_s((*tmp + 1)->key, strlen("b") + 1, "b");





(*(*tmp+1)).content = (char*)malloc(strlen("第二个字母") + 1);

strcpy_s((*(*tmp + 1)).content, strlen("第二个字母") + 1, "第二个字母");





//第2个结构体,放第2个单词

(*tmp + 2)->key = (char*)malloc(strlen("c") + 1);

strcpy_s((*tmp + 2)->key, strlen("c") + 1, "c");





(*(*tmp + 2)).content = (char*)malloc(strlen("第三个字母") + 1);

strcpy_s((*(*tmp + 2)).content, 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);

}



}

 

五、调用

struct dict* p = NULL;

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

get_dict(&p);//通过函数分配空间

//2、遍历字典

print_dict(p);

 

六、运行结果

QT案例词典 -- 存储内容及遍历_#define

 

 

 

QT案例词典 -- 存储内容及遍历_存储结构_02

 

 

举报

相关推荐

0 条评论