这个程序使用了结构体来存储联系人信息,包括姓名和电话号码。然后,它使用菜单驱动的方式让用户选择他们想要执行的操作。用户可以添加新的联系人,搜索现有的联系人,或者删除联系人。

这个程序没有实现持久化存储(例如将数据保存到文件或数据库),也没有进行错误处理(例如检查输入的有效性),在实际应用中,你可能需要添加这些功能。

#include <stdio.h>
#include <string.h>
// 定义联系人结构体
struct Contact {
char name[50];
char phoneNumber[20];
};
// 添加联系人函数
void addContact(struct Contact *contacts, int *numContacts) {
struct Contact newContact;
printf("请输入联系人的姓名: ");
scanf("%s", newContact.name);
printf("请输入联系人的电话号码: ");
scanf("%s", newContact.phoneNumber);
contacts[*numContacts] = newContact;
(*numContacts)++;
}
// 查找联系人函数
void findContact(struct Contact *contacts, int numContacts) {
char name[50];
printf("请输入要查找的联系人的姓名: ");
scanf("%s", name);
int i;
for (i = 0; i < numContacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
printf("找到联系人: 姓名 - %s, 电话号码 - %sn", contacts[i].name, contacts[i].phoneNumber);
return;
}
}
printf("未找到联系人,n");
}
// 删除联系人函数
void deleteContact(struct Contact *contacts, int *numContacts) {
char name[50];
printf("请输入要删除的联系人的姓名: ");
scanf("%s", name);
int i;
for (i = 0; i < *numContacts; i++) {
if (strcmp(contacts[i].name, name) == 0) {
int j;
for (j = i; j < *numContacts - 1; j++) {
contacts[j] = contacts[j + 1]; // 将后面的联系人信息向前移动一位以覆盖删除的联系人信息,注意这里可能存在数组越界的风险,需要谨慎处理,在实际应用中,可能需要使用动态数组或者链表来管理联系人列表,对于这个问题,这里只是一个简单的示例代码,所以没有进行详细的错误处理,在实际应用中,你需要确保正确处理这种情况,如果联系人数量很大,可能需要考虑使用更高效的数据结构来存储和管理联系人信息,对于这个问题,你可以考虑使用哈希表或者二叉搜索树等数据结构来提高查找效率,这个程序没有实现持久化存储和错误处理等功能,在实际应用中,你可能需要添加这些功能来提高程序的健壮性和可用性,你可以使用文件或数据库来保存联系人信息,以便在程序关闭后仍然可以保留数据,你也可以添加输入验证等功能来确保用户输入的有效性,这个程序只是一个基本的电话簿管理程序的示例代码,你可以根据自己的需求进行修改和扩展,如果你有任何其他问题或需要进一步帮助,请随时向我提问。"; // 这里存在数组越界的风险,需要谨慎处理这个问题,在实际应用中,你可能需要使用动态数组或者链表来管理联系人列表,对于这个问题,这里只是一个简单的示例代码,所以没有进行详细的错误处理,对于删除操作的具体实现方式可能会因数据结构的不同而不同,如果使用链表来存储联系人信息的话,删除操作会更加简单和高效,这个程序没有实现持久化存储和错误处理等功能在实际应用中需要考虑这些问题以提高程序的健壮性和可用性。";
(*numContacts)--; // 更新联系人数量并返回主菜单以继续操作。";
return; // 返回主菜单以继续操作。";
}
}
printf("未找到联系人,n"); // 如果未找到联系人则输出提示信息并返回主菜单以继续操作。"; 回到主菜单继续操作,n");
}
// 主函数开始电话簿管理程序运行循环直到用户选择退出程序为止循环结束后程序结束运行并释放所有已分配的资源包括动态分配的内存等程序结束运行后释放所有已分配的资源非常重要以避免内存泄漏等问题"}
int main() {
struct Contact contacts[100]; // 定义最大联系人数量的数组用于存储联系人信息这里假设最多可以有100个联系人实际情况中可以根据需求进行调整 初始化联系人数量为零"; int numContacts = 0; // 定义当前联系人数量变量用于记录当前已添加的联系人




