c语言编程笔录

您现在的位置是:首页 > C语言 > C#

C#

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语言模拟实现通讯录的代码。这段代码实现了添加联系人、查找联系人、编辑联系人和删除联系人等功能。通过使用结构体和链表,我们可以方便地管理和操作通讯录中的联系人信息。

文章评论