某公司对客户数据实现了计算机管理,现要编写一个程序在计算机中按姓名查找指定客户信息,并将客户的数据(姓名、年龄、电话、家庭住址)输出。
#include <stdio.h>
#include <string.h>
#include <windows.h>
typedef struct user_info //使用 typedef 定义一个新类型
{
char name[20];
int age;
char phone[20];
char address[80];
}UINFO;
UINFO *find(UINFO *u,char *name );
UINFO *find(UINFO *u,char *name )//按姓名查找客户信息。形参为结构体指针
{ //函数返回为结构体指针类型
int i;
for(i=0;i<5;i++)
{
if(!strcmp((u+i)->name,name))
return u+i ;}
return NULL ;
}
int main()
{
SetConsoleOutputCP(936);
UINFO *p;
char findname [20];
UINFO user[5]=
{
{"李",31,"114514","北京"},
{"王",29,"123456","上海"},
{"Anqi",20,"1438248","美国"},
{"张",46,"7777777","益阳"},
{"杨",33,"31415926","河南"}
};
printf("请输入要查找的人员姓名:");
gets(findname);
p=find(user,findname);
if(p!=NULL)
{
printf("\n");
printf("%-10s%-5s%-15s%-20s%\n","name","age","phone","address");
printf("%-10s%-5d%-15s%-20s%\n",p->name,p->age,(*p).phone,(*p).address);
printf("\n");
}
else
printf("查无此人!\n");
return 0;
}
运行结果:
(没有第一行行是本人的信息,不影响代码运行)