小甲鱼 P48 内存池---通讯录管理程序
通讯录管理程序
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Person
{
char name[40];
char phone[20];
struct Person *next;
};
void getInput(struct Person *person);
void printPerson(struct Person *person);
void addPerson(struct Person **contacts);
void changePerson(struct Person *contacts);
void delPerson(struct Person **contacts);
struct Person *findPerson(struct Person *contacts);
void displayContacts(struct Person *contacts);
void releaseContacts(struct Person **contacts);
void getInput(struct Person *person)
{
printf("请输入姓名:");
scanf("%s", person->name);
printf("请输入电话:");
scanf("%s", person->phone);
}
void addPerson(struct Person **contacts)
{
struct Person *person;
struct Person *temp;
person = (struct Person *)malloc(sizeof(struct Person));
if (person == NULL)
{
printf("内存分配失败!\n");
exit(1);
}
getInput(person);
// 将person用头插法添加到通讯录
if (*contacts != NULL)
{
temp = *contacts;
*contacts = person;
person->next = temp;
}
else
{
*contacts = person;
person->next = NULL;
}
}
void printPerson(struct Person *person)
{
printf("联系人:%s\n", person->name);
printf("电话:%s\n", person->phone);
}
struct Person *findPerson(struct Person *contacts)
{
struct Person *current;
char input[40];
printf("请输入联系人:");
scanf("%s", input);
current = contacts;
while (current != NULL && strcmp(current->name, input))
{
current = current->next;
}
return current;
}
voi