信息录入:
void getPeople(pcharacter)
{
printf("请输入联系人姓名:\t");
scanf("%s", txl -> Name);
printf("请输入联系人年龄:\t");
scanf("%s", txl -> Year);
printf("请输入联系人性别:\t");
scanf("%s", txl -> Sex);
}
添加联系人信息:
void addPeople(ppcharacter)
{//若内存为空,调用malloc函数申请内存
new=(pcharacter)malloc(sizeof(character));
if(new==NULL)
{
printf("内存分配失败");
exit(1);
}
if(*txl==NULL)// // 如果通讯录为空
{
*txl=new;
new->next=NULL;
}
}
查找相应联系人:
pcharacter searchPeople(pcharacter,char query[])
{
//查询联系人信息,返回值为当前节点指针
{
if(strcmp(copy->Name,query))
{//利用strcmp函数来比较字符串找出指定联系人
copy=copy->next;
}
else
{
printf("找到了联系人\n");
}
修改指定联系人的信息:
pcharacter updatePeople(pcharacter,char query[])
{
if(strcmp(copy->Name,query))// //利用strcmp函数来比较字符串找出指定联系人
{
copy=copy->next;
}
else
{//进行可执行的选择判断
printf("您确定要修改%s的信息吗? (Y/N)\n",query);
}
删除指定联系人信息:
void delPeople(ppcharacter,char query[])
{
while(middle!=NULL&&strcmp(middle->Name,query))
{//录上个结点信息,middle记录当前节点信息,当链表遍历结束或者Name==query时退出循环
big=middle;
middle=middle->next;
}
if(middle==NULL)
{
printf("没有联系人\n");
}//删除结点是头节点
}
遍历链表打印通讯录信息:
void displayCharacter(pcharacter)
{
pcharacter person;
person=txl;
while(person!=NULL)
{
printf("----------------------------------------------\n");
printf("姓名\t年龄\t性别\t手机号码\t住址信息\n");
printf("%s\t",person->Name);
printf("%s\t",person->Year);
printf("%s\t",person->Sex);
printf("%s\t\t",person->Tel);
printf("%s\n",person->Address);
printf("----------------------------------------------\n");
putchar('\n');
person=person->next;
}
}
查询打印单结点联系人信息:
void displaySingle(pcharacter)
{
if(txl==NULL)
{
printf("联系人不存在\n");
}
else
{
printf("----------------------------------------------\n");
printf("姓名\t年龄\t性别\t手机号码\t住址信息\n");
printf("%s\t",txl->Name);
printf("%s\t",txl->Year);
printf("%s\t",txl->Sex);