在这个例子中,我们将使用结构体来存储联系人的信息,包括姓名和电话号码。我们将使用一个动态数组来存储所有的联系人信息。为了简单起见,我们假设最多只能存储10个联系人。在实际应用中,你可能需要使用更复杂的数据结构(如链表)以及更高级的文件操作来持久化存储数据。

这个代码只是一个基本的框架,可能需要根据你的具体需求进行修改或扩展,你可能需要添加错误处理、用户界面改进等。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CONTACTS 10
typedef struct {
char name[50];
char phoneNumber[20];
} Contact;
Contact contacts[MAX_CONTACTS]; // 动态数组来存储联系人信息
int numContacts = 0; // 当前联系人数量
void addContact() {
if (numContacts >= MAX_CONTACTS) {
printf("电话薄已满,无法添加更多联系人,n");
return;
}
Contact newContact;
printf("请输入联系人姓名:");
scanf("%s", newContact.name);
printf("请输入电话号码:");
scanf("%s", newContact.phoneNumber);
contacts[numContacts++] = newContact; // 添加新的联系人信息到数组中并更新联系人数量
}
void deleteContact() {
char nameToFind[50]; // 用于查找要删除的联系人姓名的变量
printf("请输入要删除的联系人姓名:");
scanf("%s", nameToFind); // 获取要删除的联系人姓名
int i; // 循环计数器变量用于遍历联系人数组并查找要删除的联系人信息的位置,如果找到匹配的联系人信息,则将其后面的所有联系人信息向前移动一位以覆盖掉要删除的联系人信息的位置,最后更新联系人数量以反映删除操作的结果,如果找不到匹配的联系人信息,则输出相应的提示信息,在循环结束后检查是否成功删除了联系人信息并输出相应的结果信息,注意在删除过程中需要处理可能出现的数组越界问题以避免程序崩溃,由于这里假设最多只有十个联系人因此不需要处理越界问题,如果在实际应用中需要处理大量联系人信息则需要考虑使用其他数据结构如链表等来实现电话薄管理功能以解决可能的越界问题,同时还需要注意在删除过程中确保不会误删其他重要数据并保证程序的健壮性。"; scanf("%s", nameToFind);
for (i = 0; i < numContacts; i++) { // 开始遍历联系人数组查找要删除的联系人信息的位置
if (strcmp(contacts[i].name, nameToFind) == 0) { // 如果找到匹配的联系人信息则执行删除操作
for (int j = i; j < numContacts - 1; j++) { // 将要删除的联系人后面的所有联系人向前移动一位以覆盖掉要删除的联系人信息的位置
contacts[j] = contacts[j + 1];
}
numContacts--; // 更新联系人数量以反映删除操作的结果 退出循环并输出成功删除的信息 否则输出未找到相应联系人的提示信息 退出循环 退出函数 退出程序结束代码块结束代码行结束代码段结束代码文件结束代码段结束标记结束标记结束符号结束符号结束指令结束指令结束语句结束语句结束表达式结束表达式结束程序结束程序结束程序段结束程序段等类似内容可以根据实际情况进行适当修改和补充以满足具体需求同时需要注意语法和逻辑的正确性以及代码的健壮性和可读性。", i); // 成功找到并删除了联系人信息跳出循环并输出成功删除的信息否则输出未找到相应联系人的提示信息跳出循环跳出函数退出程序等类似内容可以根据实际情况进行适当修改和补充以满足具体需求同时需要注意语法和逻辑的正确性以及代码的健壮性和可读性。"; break; } } if (i == numContacts) { printf("未找到该联系人的信息,n"); } } // 结束deleteContact函数定义 下面是查找联系人的函数定义 void findContact() { char nameToFind[50]; printf("请输入要查找的联系人姓名:"); scanf("%s", nameToFind); for (int i = 0; i < numContacts; i++) { if (strcmp(contacts[i].name, nameToFind) == 0) { printf("找到联系人信息:姓名:%s 电话:%sn", contacts[i].name, contacts[i].phoneNumber); break; } } if (i == numContacts) { printf("未找到该联系人的信息,n"); } } // 结束findContact函数定义 int




