c语言编程笔录

首页 > C语言 > c语言

c语言

C语言实现通讯录的示例代码

更新时间:2023-08-09

前言

为了实现通讯录管理功能,我们将使用C语言编写示例代码。通讯录是一个用于存储联系人信息的应用程序。我们将使用结构体来表示每个联系人,包含姓名、电话号码和电子邮箱等字段。示例代码将实现添加、删除、修改和查找联系人等基本功能。

实现联系人结构体

首先,我们需要定义一个结构体来表示每个联系人。代码示例如下:

struct Contact {
    char name[100];
    char phone[20];
    char email[100];
};

上面的代码定义了一个名为Contact的结构体,包含了三个字段: name、phone和email。name和email字段使用char数组来存储字符串,phone字段使用char数组来存储电话号码。

实现通讯录管理函数

接下来,我们将实现一些函数来管理通讯录。这些函数将提供添加联系人、删除联系人、修改联系人以及查找联系人等功能。

添加联系人

为了添加联系人,我们可以定义一个数组来存储联系人结构体的实例。示例代码如下:

struct Contact contacts[100];
int numContacts = 0;

void addContact(struct Contact contact) {
    if(numContacts < 100) {
        contacts[numContacts] = contact;
        numContacts++;
        printf("Contact added successfully.\n");
    } else {
        printf("Contact list is full.\n");
    }
}

在上面的示例代码中,我们使用一个全局的数组contacts来存储联系人。addContact函数将判断是否还有空间来存储联系人,如果有,则将联系人添加到数组中,并递增numContacts变量。否则,将打印一条消息,表示通讯录已满。

删除联系人

要删除联系人,我们可以根据姓名来查找要删除的联系人,并将其从数组中删除。示例代码如下:

void deleteContact(char name[100]) {
    int foundIndex = -1;

    for(int i = 0; i < numContacts; i++) {
        if(strcmp(contacts[i].name, name) == 0) {
            foundIndex = i;
            break;
        }
    }

    if(foundIndex >= 0) {
        for(int i = foundIndex; i < numContacts - 1; i++) {
            contacts[i] = contacts[i + 1];
        }
        numContacts--;
        printf("Contact deleted successfully.\n");
    } else {
        printf("Contact not found.\n");
    }
}

上面的示例代码中,我们使用一个循环来查找要删除的联系人。如果找到了该联系人,则将其后面的联系人依次向前移动一个位置,以填补被删除的空缺。最后,将numContacts递减,并打印一条删除成功的消息。

修改联系人

要修改联系人的信息,我们可以根据姓名来查找要修改的联系人,并更新其字段。示例代码如下:

void updateContact(char name[100], struct Contact newContact) {
    int foundIndex = -1;

    for(int i = 0; i < numContacts; i++) {
        if(strcmp(contacts[i].name, name) == 0) {
            foundIndex = i;
            break;
        }
    }

    if(foundIndex >= 0) {
        contacts[foundIndex] = newContact;
        printf("Contact updated successfully.\n");
    } else {
        printf("Contact not found.\n");
    }
}

在上面的示例代码中,我们使用一个循环来查找要修改的联系人。如果找到了该联系人,则将其替换为新的联系人信息,并打印一条修改成功的消息。否则,将打印一条联系人未找到的消息。

查找联系人

要查找联系人,我们可以根据姓名来进行查找,并打印联系人的信息。示例代码如下:

void searchContact(char name[100]) {
    int foundIndex = -1;

    for(int i = 0; i < numContacts; i++) {
        if(strcmp(contacts[i].name, name) == 0) {
            foundIndex = i;
            break;
        }
    }

    if(foundIndex >= 0) {
        printf("Name: %s\n", contacts[foundIndex].name);
        printf("Phone: %s\n", contacts[foundIndex].phone);
        printf("Email: %s\n", contacts[foundIndex].email);
    } else {
        printf("Contact not found.\n");
    }
}

在上面的示例代码中,我们使用一个循环来查找联系人。如果找到了该联系人,则打印联系人的姓名、电话号码和电子邮箱。否则,将打印一条联系人未找到的消息。

总结

通过以上示例代码,我们实现了一个基本的通讯录管理功能,包括添加、删除、修改和查找联系人。通过使用结构体和数组,我们可以方便地存储和操作联系人信息。这只是一个简单的示例,你可以根据实际需求进行扩展和优化。