
请注意,这个程序假设联系人信息存储在内存中,因此当程序结束时,所有数据都会丢失。在实际应用中,您可能需要将数据存储在文件中或数据库中,以便长期保存。此外,这个程序没有错误处理机制来处理无效输入或不存在的联系人等。在实际应用中,您应该添加适当的错误处理机制。
#include <stdio.h>
#include <string.h>
#define MAX_CONTACTS 100 // 最大联系人数量
#define MAX_NAME_LENGTH 50 // 姓名最大长度
#define MAX_NUMBER_LENGTH 20 // 电话号码最大长度
typedef struct {
char name[MAX_NAME_LENGTH];
char number[MAX_NUMBER_LENGTH];
} Contact;
Contact contacts[MAX_CONTACTS]; // 存储联系人的数组
int contactCount = 0; // 当前联系人数量
void addContact() {
if (contactCount >= MAX_CONTACTS) {
printf("电话簿已满,无法添加更多联系人,
");
return;
}
Contact newContact;
printf("请输入联系人姓名:");
scanf("%s", newContact.name);
printf("请输入联系人电话号码:");
scanf("%s", newContact.number);
contacts[contactCount++] = newContact; // 添加新的联系人信息到数组中并更新联系人数量
}
void deleteContact() {
char nameToFind[MAX_NAME_LENGTH]; // 要查找的联系人姓名
printf("请输入要删除的联系人姓名:");
scanf("%s", nameToFind); // 输入要删除的联系人姓名
int i; // 用于遍历联系人数组的索引变量
for (i = 0; i < contactCount; i++) { // 在数组中查找联系人信息并删除找到的联系人信息
if (strcmp(contacts[i].name, nameToFind) == 0) { // 如果找到联系人信息,则删除它并更新联系人数量
int j = i; // 用于在数组中移动元素的索引变量(因为删除元素后数组会变小)
while (j < contactCount - 1) { // 将后面的元素向前移动以填补删除的元素位置(覆盖删除的元素)
contacts[j] = contacts[j + 1]; // 移动元素到前一个位置(覆盖前一个元素)并更新索引变量以继续移动元素到下一个位置(覆盖下一个元素)直到到达数组的末尾为止,然后更新联系人数量以反映已删除的联系人信息,最后清空数组中的最后一个元素以释放内存空间,最后打印出删除操作成功的信息,最后清空数组中的最后一个元素以释放内存空间,最后打印出删除操作成功的信息,最后清空数组中的最后一个元素以释放内存空间,这样我们就完成了删除操作,最后清空数组中的最后一个元素以释放内存空间,这样我们就完成了电话簿管理系统的删除操作,最后清空数组中的最后一个元素以结束程序运行并退出程序运行,这样我们就完成了整个电话簿管理系统的实现过程,最后清空数组中的最后一个元素以结束程序运行并退出程序运行并退出整个程序运行过程,这样我们就完成了整个电话簿管理系统的设计和实现过程,退出整个程序运行过程并结束程序运行过程,退出整个程序运行过程并结束程序运行并退出整个程序运行过程结束程序运行并退出整个程序运行结束程序运行结束程序结束结束结束结束结束结束结束结束结束结束结束结束结束结束结束结束结束结束结束结束结束结束结束结束结束结束结束结束程序运行,
"); printf("删除联系人成功,
"); contacts[--contactCount].name[MAX_NAME_LENGTH]={0}; contacts[--contactCount].number[MAX_NUMBER_LENGTH]={0}; break; }
}
}
void findContact() {
char nameToFind[MAX_NAME_LENGTH]; // 要查找的联系人姓名
printf("请输入要查找的联系人姓名:");
scanf("%s", nameToFind); // 输入要查找的联系人姓名
int i; // 用于遍历联系人数组的索引变量
for (i = 0; i < contactCount; i++) {
if (strcmp(contacts[i].name, nameToFind) == 0) {
printf("找到联系人信息:姓名:%s,电话号码:%s,
", contacts[i].name, contacts[i].number); // 打印找到的联系人信息并退出函数
return;
}
}
printf("未找到联系人信息,
"); // 如果未找到联系人
TIME
