重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
怎么在C语言中利用结构体实现通讯录?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站设计、外贸营销网站建设、右江网络推广、成都小程序开发、右江网络营销、右江企业策划、右江品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;成都创新互联公司为所有大学生创业者提供右江建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com程序如下:
#include#include #include struct People { char name[20]; char sex[5]; int age; char tel[15]; char addr[50]; }; //定义人的信息结构体(包含各种信息) struct Contact { struct People person[1000]; //定义通讯录结构体 int n; //(包含人的信息的结构体和用户个数n) }; typedef struct Contact * p; void menu(); int add(p q); //p是一个结构体指针类型,q是一个指向struct Contact的一个指针 int delete(p q); //例如:typedef int * int 即 int *p ==> int p int find(p q); int modify(p q); int show(p q); int clear(p q); //函数的声明 void menu() //目录格式 { printf("====================欢迎来到苏嵌154通讯录==================\n"); printf("----------------------1.添加联系人信息---------------------\n"); printf("----------------------2.删除指定联系人信息-----------------\n"); printf("----------------------3.查找指定联系人信息-----------------\n"); printf("----------------------4.修改指定联系人信息-----------------\n"); printf("----------------------5.显示所有联系人信息-----------------\n"); printf("----------------------6.清空所有联系人---------------------\n"); printf("----------------------0.谢谢使用---------------------------\n"); printf("====================欢迎来到苏嵌154通讯录==================\n"); } int add(p q) //添加联系人 { if((*q).n >= 1000) { printf("contact is full!\n"); return -1; } else { printf("输入姓名:\n"); scanf("%s",(*q).person[(*q).n].name); printf("输入性别:\n"); scanf("%s",(*q).person[(*q).n].sex); printf("输入年龄:\n"); scanf("%d",&(*q).person[(*q).n].age); printf("输入电话:\n"); scanf("%s",(*q).person[(*q).n].tel); printf("输入地址:\n"); scanf("%s",(*q).person[(*q).n].addr); ((*q).n)++; } return 0; } int delete(p q) //删除联系人 { int ret = find(q); //调用查找函数并保存其值 if(ret != -1) { int i = 0; i = ret; //这里要用另一个变量来保存输入的姓名 for(i = 0;i < (*q).n-1;i++) { (*q).person[i] = (*q).person[i+1]; //用后一个覆盖前边的,如果要删除的是最后一个不进行此步骤 } (*q).n --; //直接减去最后一个即count-- } return 0; } int find(p q) //查找联系人 { int i = 0; char ret[20]; //用另一个数组来保存姓名 printf("输入姓名:\n"); scanf("%s",ret); while(i <= (*q).n) { if(strcmp(ret,(*q).person[i].name)== 0) //比较输入的姓名和通讯录中已有的姓名 { printf("姓名\t性别\t年龄\t电话\t地址\4t\n"); //制表符来制作表头 printf("%s\t",(*q).person[i].name); printf("%s\t",(*q).person[i].sex); printf("%d\t",(*q).person[i].age); printf("%s\t",(*q).person[i].tel); printf("%s\4t\n",(*q).person[i].addr); return i; } i++; } printf("你丫的我班没这个人\n"); return -1; } int modify(p q) //修改函数,首先找到如要修改的姓名,然后重新输入 { int ret = find(q); if(ret != -1) { printf("输入修改的姓名:\n"); scanf("%s",(*q).person[ret].name); printf("输入修改的性别:\n"); scanf("%s",(*q).person[ret].sex); printf("输入修改的年龄:\n"); scanf("%d",&((*q).person[ret].age)); printf("输入修改的电话:\n"); scanf("%s",(*q).person[ret].tel); printf("输入修改的地址:\n"); scanf("%s",(*q).person[ret].addr); } else { printf("你丫的我班没这个人\n"); } return 0; } int show(p q) //显示全部联系人 { int i = 0; printf("姓名\t性别\t年龄\t电话\t地址\4t\n"); for(i = 0;i < (*q).n;i++) { printf("%s\t",(*q).person[i].name); printf("%s\t",(*q).person[i].sex); printf("%d\t",(*q).person[i].age); printf("%s\t",(*q).person[i].tel); printf("%s\4t\n",(*q).person[i].addr); } printf("\n"); return 0; } int clear(p q) //清除所有人,直接让成员个数变为0 { (*q).n = 0 ; return 0; } int main() { int n=1; struct Contact people; //调用通讯录结构体 people.n = 0; //初始化n while(n) { menu(); printf("请选择你的骚操作:\n"); scanf("%d",&n); switch(n) //switch case语句分支选择不同函数实现不同作用 { case 1: { add(&people); break; } case 2: { delete(&people); break; } case 3: { find(&people); break; } case 4: { modify(&people); break; } case 5: { show(&people); break; } case 6: { clear(&people); break; } default: { return 0; break; } } } return 0; }
关于怎么在C语言中利用结构体实现通讯录问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联网站建设公司行业资讯频道了解更多相关知识。
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。