TIME2026-03-23 11:33:57

steam 接码网[213R]

搜索
热点
新闻分类
友情链接
首页 > 资讯 > 用c语言编写电话本
资讯
用c语言编写电话本
2025-07-13IP属地 希腊雅典0

c

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

// 定义联系人结构体

struct Contact {

char name[50];

char phoneNumber[20];

struct Contact *next;

};

// 定义全局变量以跟踪联系人列表的末尾

struct Contact *lastContact = NULL;

// 添加联系人函数

void addContact() {

struct Contact *newContact = (struct Contact*)malloc(sizeof(struct Contact));

printf("请输入联系人的姓名: ");

scanf("%s", newContact->name);

printf("请输入联系人的电话号码: ");

scanf("%s", newContact->phoneNumber);

newContact->next = NULL;

if (lastContact == NULL) { // 如果列表为空,新联系人是第一个联系人

lastContact = newContact;

用c语言编写电话本

return;

} else { // 在列表末尾添加联系人

struct Contact *temp = lastContact; // 获取当前最后一个联系人

while (temp->next != NULL) { // 寻找最后一个联系人的下一个位置(即列表末尾)

temp = temp->next;

}

temp->next = newContact; // 将新联系人添加到末尾

return;

}

// 删除联系人函数

void deleteContact() {

struct Contact *tempContact;

if (lastContact == NULL) {

printf("电话本为空,无法删除, ");

return;

} else if (lastContact == lastContact->next) { // 如果只有一个联系人,删除该联系人后列表为空

tempContact = lastContact;

lastContact = NULL;

free(tempContact);

return;

} else { // 删除指定联系人

struct Contact *toDelete, *prevContact = NULL;

printf("请输入要删除的联系人的姓名: ");

用c语言编写电话本

struct Contact *currentContact = lastContact;

while (currentContact != NULL) {

if (strcmp(currentContact->name, inputName) == 0) { // 找到要删除的联系人

if (prevContact == NULL) { // 如果要删除的联系人是第一个联系人,更新列表头

toDelete = lastContact;

lastContact = lastContact->next;

free(toDelete);

} else { // 删除其他联系人

prevContact->next = currentContact->next;

free(currentContact);

}

return;

} else { // 继续搜索列表中的联系人

prevContact = currentContact;

currentContact = currentContact->next;

}

}

printf("未找到该联系人, "); // 如果未找到联系人,输出提示信息并退出函数

return;

}

//查找联系人函数(此处省略)等其它功能可以根据需求自行添加,注意处理内存分配和释放问题。 //查找联系人函数(此处省略)等其它功能可以根据需求自行添加,注意处理内存分配和释放问题,你可以使用类似的方法来实现查找和编辑联系人的功能,在实现这些功能时,请确保正确地处理内存分配和释放问题,以避免内存泄漏和其他相关问题,你还可以根据需要添加更多的功能,如按姓名或电话号码排序的联系人列表等。