6)查找联系人信息
上一步删除指定联系人已经为查找做了铺垫,代码如下:
1.voidSearchContact(conststructContact*pc) { charname[MAX_NAME]; printf("请输入要查找的人的名字:"); scanf("%s", name); //查找一下指定的人是否存在intret=FindByName(pc, name); if (ret==-1) printf("要查找的人不存在\n"); else { printf("%-20s\t%-5s\t%-5s\t%-12s\t%-30s\n", "姓名", "性别", "年龄", "电话", "地址"); printf("%-20s\t%-5s\t%-5d\t%-12s\t%-30s\n", pc->data[ret].name, pc->data[ret].sex, pc->data[ret].age, pc->data[ret].tele, pc->data[ret].addr); } }
代码运行结果如下:
7)修改联系人信息
voidModifyContact(structContact*pc) { printf("请输入要修改人的名字:>"); charname[MAX_NAME]; scanf("%s", name); intret=FindByName(pc, name); if (ret==-1) printf("要修改的人不存在\n"); else { printf("请输入名字:"); scanf("%s", pc->data[ret].name); printf("请输入性别:"); scanf("%s", pc->data[ret].sex); printf("请输入年龄:"); scanf("%d", &(pc->data[ret].age)); printf("请输入电话:"); scanf("%s", pc->data[ret].tele); printf("请输入地址:"); scanf("%s", pc->data[ret].addr); printf("修改成功\n"); } }
代码运行结果如下:
8)排序联系人信息
排序这里会涉及到一个按照什么方式来进行排序,这里我们就以年龄为例,这里只需要使用一个qstort函数就搞定了,代码如下:
intCmpByAge(constvoid*e1, constvoid*e2) { return ((structPeoInfo*)e1)->age- ((structPeoInfo*)e2)->age; } //按照年龄来排序voidSortContact(structContact*pc) { qsort(pc->data, pc->sz, sizeof(structPeoInfo), CmpByAge); }
代码运行结果如下:
到这里,一个通讯录基本就实现了!!!