下面是一个使用C语言实现上述需求的示例代码。我们将定义两个结构体类型,一个是`Contact`用于存储单个联系人的信息,另一个是`PhoneBook`用于存储多个联系人的信息及联系人数目。 ```c
时间: 2024-09-23 11:16:56 浏览: 64
在C语言中,为了实现这样的需求,我们可以创建如下的结构体和相关的函数:
```c
// 定义Contact结构体
typedef struct {
char name[50]; // 联系人姓名
int age; // 年龄
char phone[20]; // 手机号码
} Contact;
// 定义PhoneBook结构体,包含Contact数组和联系人总数
typedef struct {
Contact contacts[100]; // 可能需要动态扩容,这里假设最大100个联系人
int count; // 当前联系人数量
} PhoneBook;
// 添加联系人到电话簿
void addContact(PhoneBook *pb, const char *name, int age, const char *phone) {
if (pb->count < sizeof(pb->contacts)) { // 检查是否已满
pb->contacts[pb->count].name = name;
pb->contacts[pb->count].age = age;
strcpy(pb->contacts[pb->count].phone, phone);
pb->count++;
} else {
printf("电话簿已满,无法添加更多联系人。\n");
}
}
// 查找特定联系人
void findContact(const PhoneBook *pb, const char *name) {
for (int i = 0; i < pb->count; i++) {
if (strcmp(pb->contacts[i].name, name) == 0) {
printf("找到联系人:%s, %d岁, 邮箱:%s\n", pb->contacts[i].name, pb->contacts[i].age, pb->contacts[i].phone);
return;
}
}
printf("未找到该联系人。\n");
}
// 示例代码
int main() {
PhoneBook book;
book.count = 0;
addContact(&book, "张三", 25, "13812345678");
addContact(&book, "李四", 30, "13987654321");
findContact(&book, "张三"); // 查找张三
findContact(&book, "王五"); // 查找不存在的王五
return 0;
}
```
这个例子展示了如何通过结构体和函数来管理电话簿和联系人,实现了基本的功能。然而,由于C语言本身的限制,它并不支持像高级语言那样的动态多态特性,这里并没有涉及继承或虚函数之类的概念。
阅读全文