用C语言建立同学通讯录
时间: 2024-11-09 22:20:04 浏览: 7
在C语言中创建一个简单的同学通讯录程序,可以设计成一个结构体表示学生,包括姓名和联系方式,然后用数组或链表来存储这些学生的信息。这里给出一个基本的概念性示例:
```c
#include <stdio.h>
#include <string.h>
// 定义同学结构体
typedef struct {
char name[50];
char phone_number[15]; // 假设电话号码最多14位,包括区号
} Student;
// 初始化一个空的通讯录
void initializeContactList(Student contacts[], int capacity) {
for (int i = 0; i < capacity; i++) {
strcpy(contacts[i].name, "未命名");
memset(contacts[i].phone_number, '\0', sizeof(contacts[i].phone_number));
}
}
// 添加新同学到通讯录
void addStudent(Student contacts[], char *new_name, char *new_phone, int index) {
if (index >= 0 && index < sizeof(contacts)/sizeof(Student)) {
strcpy(contacts[index].name, new_name);
strncpy(contacts[index].phone_number, new_phone, sizeof(contacts[index].phone_number) - 1); // 不包含'\0'
} else {
printf("通讯录已满,无法添加更多同学。\n");
}
}
// 打印通讯录
void printContactList(Student contacts[], int size) {
for (int i = 0; i < size; i++) {
printf("姓名:%s, 电话:%s\n", contacts[i].name, contacts[i].phone_number);
}
}
int main() {
const int MAX_CONTACTS = 10;
Student contactList[MAX_CONTACTS];
// 初始化并添加同学
initializeContactList(contactList, MAX_CONTACTS);
// 使用示例
addStudent(&contactList, "张三", "1234567890", 0);
addStudent(&contactList, "李四", "0987654321", 1); // 如果你想添加第二个同学,索引从1开始
// 打印通讯录
printContactList(contactList, MAX_CONTACTS);
return 0;
}
```
在这个示例中,我们首先定义了一个`Student`结构体,然后创建了初始化、添加和打印通讯录的方法。注意,实际应用中可能会选择使用动态内存管理,如`malloc`和`free`,来避免预设容量限制。
阅读全文