用C语言编写通讯录
时间: 2023-09-08 15:08:50 浏览: 90
下面是一个简单的通讯录的C语言代码示例,基本实现了增、删、改、查等基本功能:
```c
#include <stdio.h>
#include <string.h>
#define MAX_CONTACTS 100
#define MAX_NAME_LEN 20
#define MAX_PHONE_LEN 11
typedef struct {
char name[MAX_NAME_LEN];
char phone[MAX_PHONE_LEN];
} Contact;
int main() {
Contact contacts[MAX_CONTACTS];
int count = 0;
int choice = 0;
char name[MAX_NAME_LEN];
char phone[MAX_PHONE_LEN];
int i;
while (1) {
// 显示菜单
printf("1. 添加联系人\n");
printf("2. 删除联系人\n");
printf("3. 修改联系人\n");
printf("4. 查找联系人\n");
printf("5. 显示所有联系人\n");
printf("6. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
// 添加联系人
case 1:
if (count >= MAX_CONTACTS) {
printf("通讯录已满,无法添加联系人!\n");
} else {
printf("请输入联系人姓名:");
scanf("%s", name);
printf("请输入联系人电话:");
scanf("%s", phone);
strcpy(contacts[count].name, name);
strcpy(contacts[count].phone, phone);
count++;
printf("联系人添加成功!\n");
}
break;
// 删除联系人
case 2:
printf("请输入要删除的联系人姓名:");
scanf("%s", name);
for (i = 0; i < count; i++) {
if (strcmp(contacts[i].name, name) == 0) {
break;
}
}
if (i == count) {
printf("联系人不存在!\n");
} else {
for (; i < count - 1; i++) {
strcpy(contacts[i].name, contacts[i + 1].name);
strcpy(contacts[i].phone, contacts[i + 1].phone);
}
count--;
printf("联系人删除成功!\n");
}
break;
// 修改联系人
case 3:
printf("请输入要修改的联系人姓名:");
scanf("%s", name);
for (i = 0; i < count; i++) {
if (strcmp(contacts[i].name, name) == 0) {
break;
}
}
if (i == count) {
printf("联系人不存在!\n");
} else {
printf("请输入新的联系人姓名:");
scanf("%s", name);
printf("请输入新的联系人电话:");
scanf("%s", phone);
strcpy(contacts[i].name, name);
strcpy(contacts[i].phone, phone);
printf("联系人修改成功!\n");
}
break;
// 查找联系人
case 4:
printf("请输入要查找的联系人姓名:");
scanf("%s", name);
for (i = 0; i < count; i++) {
if (strcmp(contacts[i].name, name) == 0) {
printf("联系人姓名:%s\t电话:%s\n", contacts[i].name, contacts[i].phone);
break;
}
}
if (i == count) {
printf("联系人不存在!\n");
}
break;
// 显示所有联系人
case 5:
printf("所有联系人如下:\n");
for (i = 0; i < count; i++) {
printf("联系人姓名:%s\t电话:%s\n", contacts[i].name, contacts[i].phone);
}
break;
// 退出
case 6:
printf("谢谢使用!\n");
return 0;
default:
printf("无效操作,请重新选择!\n");
break;
}
}
}
```
注意,在实际使用中,还需要考虑输入的合法性、通讯录未满时的界面提示等问题。此示例代码仅供参考。