电话通讯录代码c语言
时间: 2024-11-04 13:09:43 浏览: 14
在C语言中,编写一个简单的电话通讯录程序可以涉及结构体、文件操作以及用户输入处理。下面是一个基本的概念示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义电话联系人结构体
typedef struct {
char name[50];
char phone_number[15];
} Contact;
// 插入联系人到通讯录函数
void add_contact(Contact* contacts, int* count, char* name, char* phone) {
Contact new_contact = {name, phone};
*count += 1;
*contacts = realloc(*contacts, (*count) * sizeof(Contact)); // 动态分配内存
(*contacts)[*count - 1] = new_contact;
}
// 查找联系人函数
void search_contact(Contact contacts[], int count, char* name) {
for (int i = 0; i < count; i++) {
if (strcmp(contacts[i].name, name) == 0) {
printf("Name: %s, Phone Number: %s\n", contacts[i].name, contacts[i].phone_number);
return;
}
}
printf("Contact not found.\n");
}
int main() {
int contact_count = 0;
Contact* phone_book = malloc(sizeof(Contact)); // 初始分配一个存储位置
while (1) {
char choice;
printf("\n1. Add contact\n2. Search contact\n3. Exit\nChoose an option: ");
scanf("%c", &choice);
switch(choice) {
case '1':
char name[50], phone[15];
printf("Enter name: ");
fgets(name, sizeof(name), stdin);
getchar(); // 清除换行符
printf("Enter phone number: ");
fgets(phone, sizeof(phone), stdin);
getchar(); // 清除换行符
add_contact(&phone_book, &contact_count, name, phone);
break;
case '2':
char search_name[50];
printf("Search by name: ");
fgets(search_name, sizeof(search_name), stdin);
getchar(); // 清除换行符
search_contact(phone_book, contact_count, search_name);
break;
case '3':
free(phone_book);
exit(0); // 结束程序
default:
printf("Invalid choice.\n");
}
}
return 0;
}
```
这个程序创建了一个动态大小的电话簿,允许添加和搜索联系人。用户通过选择相应的选项进行操作。请注意,这个例子并没有考虑错误处理和文件持久化,实际应用中可能需要对用户输入做适当的验证,并将数据保存到磁盘。
阅读全文