定义一个User结构体,含以下字段:
ID: 一个数字,每个用户不同的id
email: email地址,一般网站的用户允许以email地址登录
gender: 性别,男or女
QQ: QQ号码
写一个函数,在User数组中查找某个id的User(知识点:结构体数组初始化;指针访问成员变量)
函数描述:User* find (int id);
其中,id: 待查找的id
打印查找到的id对应的信息。
第一种写法
#define LEN 4
typedef struct
{
int id;
char *email;
char *gender;
char *qq;
}User;
User user[LEN] = {{1,"12345678901@qq.com","男","12345678901"},
{2,"12345678902@qq.com","女","12345678902"},
{3,"12345678903@qq.com","男","12345678903"},
{4,"12345678904@qq.com","女","12345678904"}}; //定义并初始化结构体数组,注意是u[],而不是u[][]
User* find(int id)
{
int i;
for(i = 0; i < LEN;i++)
{
if(user[i].id == id) //输入的内容与结构体数组中的每条结构数据的第一个数据进行匹配
{
return user+i;
}
}
return NULL;
}
int main()
{
printf("请输入要查看信息的ID(1或2或3或4):");
int id;
scanf("%d",&id);
User* user = find(id);
if(user != NULL)
{
printf("ID:%d\t\nemail:%s\t\n性别:%s\t\nQQ:%s\t\n",user->id,user->email,user->gender,user->qq);
}else{
printf("没有找到该用户!\r\n");
}
return 0;
}
输出结果为
请输入要查看信息的ID(1或2或3或4):2
ID:2
email:12345678902@qq.com
性别:女
QQ:12345678902
请输入要查看信息的ID(1或2或3或4):4
ID:4
email:12345678904@qq.com
性别:女
QQ:12345678904
请输入要查看信息的ID(1或2或3或4):5
没有找到该用户!
第二种写法
typedef struct
{
int id;
char *email;
char *gender;
char *qq;
}user;
int find(user u[],int id,int len)
{
user *find; //定义结构体指针,结构体指针指向的是一个结构体
for(find = u; find < u + len;find++) //find = u 为结构体指针赋初值,指向结构体数组中的第一个结构体数据
{
if(id == find->id) //输入的内容与结构体数组中的每条结构数据的第一个数据进行匹配
{
printf("ID:%d\t\nemail:%s\t\n性别:%s\t\nQQ:%s\t\n",find->id,find->email,find->gender,find->qq);
return 0;
}
}
}
int main()
{
user u[] = {{1,"12345678901@qq.com","男","12345678901"},
{2,"12345678902@qq.com","女","12345678902"},
{3,"12345678903@qq.com","男","12345678903"},
{4,"12345678904@qq.com","女","12345678904"}}; //定义并初始化结构体数组,注意是u[],而不是u[][]
int len = (sizeof(u) / sizeof(user)); //获取结构体数组长度
printf("请输入要查看信息的ID(1或2或3或4):");
int id;
scanf("%d",&id);
find(u,id,len);
return 0;
}
输出结果为
请输入要查看信息的ID(1或2或3或4):1
ID:1
email:12345678901@qq.com
性别:男
QQ:12345678901
请输入要查看信息的ID(1或2或3或4):2
ID:2
email:12345678902@qq.com
性别:女
QQ:12345678902
请输入要查看信息的ID(1或2或3或4):3
ID:3
email:12345678903@qq.com
性别:男
QQ:12345678903
请输入要查看信息的ID(1或2或3或4):4
ID:4
email:12345678904@qq.com
性别:女
QQ:12345678904