C语言关于结构体数组的疑问

2025-05-23 14:47:25
推荐回答(2个)
回答1:

/*时间:2011年6月23日
*@作者:风之风信子
*@功能:测试指针指向结构体数组中某一元素的功能。
*/

#include
#include

struct tree
{
int num;
char name[20];
};

struct tree fruit_tree[10]={{10001,"apple_tree"},{10002,"peach_tree"},{10003,"coconut_tree"},{10004,""},{10005,""}};

void main()
{
int judge_num;

struct tree *p_ft;

p_ft=fruit_tree;

printf("你想知道第几组水果树的信息?\n");

scanf("%d",&judge_num);

if (judge_num > 10)
{
printf("资料库共有十个树种。");
return;
}
if (0 == strlen((p_ft+judge_num-1)->name))//判定是否为空。
{
printf("资料库里没有这个树木的信息。\n");

}
else
{
printf("树木的编号是:%d\n",(p_ft+judge_num-1)->num);//用指针指向该树木的编号。

printf("树木的名字是:%s\n",(p_ft+judge_num-1)->name);//用指针指向该树木的名称。
}
}

回答2:

第一,是采用查询看是否为空。
第二,那就用指针指到该数组进行初始化。