c语言涉及一种通讯录系统
时间: 2024-11-03 13:12:50 浏览: 5
在C语言中,创建一个通讯录系统通常会涉及到结构体(struct)来表示联系人信息,如姓名、电话号码、电子邮件等。下面是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义联系人结构体
typedef struct {
char name[50];
char phone_number[20];
char email[50];
} Contact;
// 添加联系人的函数
void add_contact(Contact* contacts, int* count) {
Contact new_contact;
printf("请输入联系人姓名:");
fgets(new_contact.name, sizeof(new_contact.name), stdin);
// 留意fgets处理换行符
new_contact.name[strlen(new_contact.name)-1] = '\0';
printf("请输入电话号码:");
fgets(new_contact.phone_number, sizeof(new_contact.phone_number), stdin);
new_contact.phone_number[strlen(new_contact.phone_number)-1] = '\0';
printf("请输入电子邮件:");
fgets(new_contact.email, sizeof(new_contact.email), stdin);
new_contact.email[strlen(new_contact.email)-1] = '\0';
*count += 1;
contacts[*count - 1] = new_contact;
}
// 查找特定联系人
void search_contact(Contact* contacts, int count, char* search_name) {
for (int i = 0; i < count; i++) {
if (strcmp(contacts[i].name, search_name) == 0) {
printf("姓名:%s\n电话:%s\n邮箱:%s\n", contacts[i].name, contacts[i].phone_number, contacts[i].email);
break;
}
}
}
// 主程序
int main() {
int contact_count = 0;
Contact contacts[100]; // 假设最多保存100条记录
while (true) {
char choice;
printf("请选择操作:\n1. 添加联系人\n2. 搜索联系人\n3. 退出\n");
scanf("%c", &choice);
switch (choice) {
case '1':
add_contact(&contacts, &contact_count);
break;
case '2':
if (contact_count > 0) {
printf("输入要查找的姓名:");
char search_name[50];
fgets(search_name, sizeof(search_name), stdin);
search_name[strlen(search_name)-1] = '\0';
search_contact(contacts, contact_count, search_name);
} else {
printf("通讯录为空,无法搜索。\n");
}
break;
case '3':
return 0;
default:
printf("无效选择,重新输入。\n");
}
}
return 0;
}
```
在这个例子中,用户可以选择添加新的联系人,查询已有联系人,或者退出程序。这个通讯录系统相当基础,实际项目可能会更复杂,包含更多的功能,如删除联系人、更新信息等。
阅读全文