当前位置:首页 > 行业动态 > 正文

c语言怎么写通讯录

在C语言中编写一个简单的通讯录程序涉及到多个步骤,包括数据结构的定义、输入/输出处理以及可能的排序和搜索功能,以下是创建通讯录程序的一个基本指南:

1. 定义数据结构

我们需要一个结构体来存储联系人的信息。

#include <stdio.h>
#include <string.h>
// 定义一个结构体来保存联系人信息
typedef struct {
    char name[50];       // 姓名
    char phoneNumber[20]; // 电话号码
    char email[50];      // 邮箱地址
} Contact;

2. 初始化数组或动态内存分配

接着,我们可以创建一个数组来保存多个Contact对象,或者使用动态内存分配(如malloc)来管理不确定数量的联系人。

// 假设我们想存储100个联系人
#define MAX_CONTACTS 100
Contact contacts[MAX_CONTACTS];
int currentContacts = 0; // 当前通讯录中的联系人数量

3. 添加联系人功能

接下来,我们需要一个函数来添加新的联系人到通讯录中:

void addContact(Contact contact) {
    if (currentContacts < MAX_CONTACTS) {
        contacts[currentContacts] = contact;
        currentContacts++;
        printf("联系人 %s 已成功添加!
", contact.name);
    } else {
        printf("通讯录已满,无法添加更多联系人!
");
    }
}

4. 显示所有联系人

我们还需要一个函数来显示通讯录中的所有联系人:

void displayContacts() {
    for (int i = 0; i < currentContacts; i++) {
        printf("%d: %s %s %s
", i+1, contacts[i].name, contacts[i].phoneNumber, contacts[i].email);
    }
}

5. 查找联系人

查找特定联系人的功能可以通过遍历数组并比较姓名来实现:

int findContact(const char* name) {
    for (int i = 0; i < currentContacts; i++) {
        if (strcmp(contacts[i].name, name) == 0) {
            return i; // 如果找到了,返回索引
        }
    }
    return 1; // 如果没有找到,返回1
}

6. 删除联系人

删除联系人可以通过移动数组中的元素来实现:

void deleteContact(const char* name) {
    int index = findContact(name);
    if (index != 1) {
        for (int i = index; i < currentContacts 1; i++) {
            contacts[i] = contacts[i + 1];
        }
        currentContacts;
        printf("联系人 %s 已删除。
", name);
    } else {
        printf("未找到联系人 %s。
", name);
    }
}

7. 主函数

我们在主函数中组织这些功能:

int main() {
    // 示例:添加一些联系人到通讯录
    addContact({"张三", "1234567890", "zhangsan@example.com"});
    addContact({"李四", "0987654321", "lisi@example.com"});
    displayContacts();
    
    // 查找并删除一个联系人
    deleteContact("张三");
    displayContacts();
    
    return 0;
}

以上是一个简单的通讯录程序的实现,根据实际需要,你可以添加更多的功能,比如按名字或电话号码排序联系人,或者将通讯录持久化存储到文件等,注意,这个示例代码没有考虑用户输入验证和错误处理,这些在实际的程序中是非常重要的。

0