c语言通讯录程序删除
时间: 2023-12-29 17:01:14 浏览: 165
通讯录C程序
5星 · 资源好评率100%
C语言通讯录程序的删除操作可以通过以下步骤实现:
1. 首先,提示用户输入要删除的联系人的姓名或编号。
2. 接下来,程序会遍历通讯录中的每个联系人,并与待删除的姓名或编号进行比较。
3. 如果找到了匹配的联系人,程序会向用户确认是否删除该联系人。
4. 如果用户确认删除,则程序会删除该联系人,并将通讯录中后续联系人的信息向前移动。
5. 最后,程序会显示删除后的通讯录内容,并输出删除成功的信息。
下面是一个简单的C语言通讯录删除程序的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_CONTACTS 100
#define MAX_NAME_LENGTH 20
#define MAX_PHONE_LENGTH 15
typedef struct {
char name[MAX_NAME_LENGTH];
char phone[MAX_PHONE_LENGTH];
} Contact;
Contact contacts[MAX_CONTACTS];
int contactCount = 0;
void deleteContact(int index) {
for (int i = index; i < contactCount - 1; i++) {
contacts[i] = contacts[i + 1];
}
contactCount--;
}
int main() {
// 添加一些联系人到通讯录(用于示例)
strcpy(contacts[contactCount].name, "张三");
strcpy(contacts[contactCount].phone, "123456789");
contactCount++;
strcpy(contacts[contactCount].name, "李四");
strcpy(contacts[contactCount].phone, "987654321");
contactCount++;
// 提示用户输入要删除的姓名或编号
char nameOrNum[MAX_NAME_LENGTH];
printf("请输入要删除的联系人的姓名或编号:");
fgets(nameOrNum, sizeof(nameOrNum), stdin);
nameOrNum[strcspn(nameOrNum, "\n")] = '\0'; // 去掉输入中的换行符
// 在通讯录中查找匹配的联系人并删除
int deletedIndex = -1;
for (int i = 0; i < contactCount; i++) {
if (strcmp(contacts[i].name, nameOrNum) == 0 || i+1 == atoi(nameOrNum)) {
deletedIndex = i;
break;
}
}
if (deletedIndex != -1) {
// 询问用户是否确认删除该联系人
printf("确认删除联系人:%s 电话:%s?(y/n): ", contacts[deletedIndex].name, contacts[deletedIndex].phone);
char confirm;
scanf("%c", &confirm);
getchar(); // 读取并忽略用户输入的换行符
if (confirm == 'y') {
deleteContact(deletedIndex);
printf("联系人删除成功!\n");
} else {
printf("取消删除联系人。\n");
}
} else {
printf("未找到匹配的联系人。\n");
}
// 显示删除后的通讯录内容
printf("剩余联系人列表:\n");
for (int i = 0; i < contactCount; i++) {
printf("联系人 %d: 姓名:%s 电话:%s\n", i+1, contacts[i].name, contacts[i].phone);
}
return 0;
}
```
请注意,这只是一个简单的示例代码,只能删除一个联系人。如果要实现更复杂的功能,如批量删除或根据不同的条件进行删除,请相应地修改代码。
阅读全文