C语言之通讯录的模拟实现代码
林子帆 2023-08-09C#
前言介绍通讯录是一个用于存储和管理联系人信息的工具。在这个问题中,我们需要使用C语言来模拟实现一个通讯录的代码。通讯录主要包含添加联系人,查找联系人,编辑联系人,删除联系人等功能。我们将使用结构体来表示每个联系人的信息,使用链表
前言介绍
通讯录是一个用于存储和管理联系人信息的工具。在这个问题中,我们需要使用C语言来模拟实现一个通讯录的代码。通讯录主要包含添加联系人,查找联系人,编辑联系人,删除联系人等功能。我们将使用结构体来表示每个联系人的信息,使用链表来组织联系人列表。
代码实现
首先,我们需要定义一个结构体来保存每个联系人的信息。结构体可以包含姓名、电话号码、电子邮件地址等字段,如下所示:
typedef struct Contact { char name[50]; char phoneNumber[20]; char emailAddress[50]; // 其他字段 struct Contact* next; } Contact;
接下来,我们需要实现添加联系人的功能。这个功能将接受用户输入的联系人信息,然后创建一个新的联系人结构体,并将其添加到通讯录的链表中。代码实现如下:
Contact* createContact(char name[], char phoneNumber[], char emailAddress[]) { Contact* newContact = (Contact*)malloc(sizeof(Contact)); strcpy(newContact->name, name); strcpy(newContact->phoneNumber, phoneNumber); strcpy(newContact->emailAddress, emailAddress); newContact->next = NULL; return newContact; } void addContact(Contact** contactList, char name[], char phoneNumber[], char emailAddress[]) { Contact* newContact = createContact(name, phoneNumber, emailAddress); if (*contactList == NULL) { *contactList = newContact; } else { Contact* current = *contactList; while (current->next != NULL) { current = current->next; } current->next = newContact; } }
然后,我们需要实现查找联系人的功能。这个功能将接受用户输入的姓名或电话号码,然后在通讯录的链表中查找联系人并返回其信息。代码实现如下:
Contact* findContact(Contact* contactList, char keyword[]) { Contact* current = contactList; while (current != NULL) { if (strcmp(current->name, keyword) == 0 || strcmp(current->phoneNumber, keyword) == 0) { return current; } current = current->next; } return NULL; } void searchContact(Contact* contactList, char keyword[]) { Contact* result = findContact(contactList, keyword); if (result != NULL) { printf("姓名:%s\n", result->name); printf("电话:%s\n", result->phoneNumber); printf("邮箱:%s\n", result->emailAddress); } else { printf("未找到联系人信息。\n"); } }
最后,我们需要实现编辑联系人和删除联系人的功能。编辑联系人将接受用户输入的姓名,然后在通讯录的链表中查找联系人并允许用户修改其信息。删除联系人将接受用户输入的姓名,然后在通讯录的链表中查找联系人并将其从链表中移除。代码实现如下:
void editContact(Contact* contactList, char name[]) { Contact* result = findContact(contactList, name); if (result != NULL) { char phoneNumber[20]; char emailAddress[50]; printf("请输入新的电话号码:"); scanf("%s", phoneNumber); printf("请输入新的邮箱地址:"); scanf("%s", emailAddress); strcpy(result->phoneNumber, phoneNumber); strcpy(result->emailAddress, emailAddress); printf("联系人信息已更新。\n"); } else { printf("未找到联系人信息。\n"); } } void deleteContact(Contact** contactList, char name[]) { Contact* current = *contactList; Contact* previous = NULL; while (current != NULL) { if (strcmp(current->name, name) == 0) { if (previous == NULL) { *contactList = current->next; } else { previous->next = current->next; } free(current); printf("联系人已删除。\n"); return; } previous = current; current = current->next; } printf("未找到联系人信息。\n"); }
总结
以上就是使用C语言模拟实现通讯录的代码。这段代码实现了添加联系人、查找联系人、编辑联系人和删除联系人等功能。通过使用结构体和链表,我们可以方便地管理和操作通讯录中的联系人信息。
很赞哦! ()