c语言 链表通讯录 删除,求:用数组或链表结构处理通讯录(包括姓名,电话号码,追加插入、删除、查询功能)。...

这段代码展示了如何使用C语言创建一个简单的联系人管理程序。程序允许用户输入姓名、电话号码和地址,并能进行显示、搜索和删除操作。通过`creat_list()`函数创建联系人列表,`display()`用于显示所有联系人,`search_num()`和`search_nam()`分别按电话号码和姓名搜索,`insert()`插入新联系人,`del()`删除指定姓名的联系人。
摘要由CSDN通过智能技术生成

满意答案

#include

#include

#include

#define SIZE sizeof(NODE)

typedef struct node

{

char name[20];

char phone_num[20];

char add[50];

struct node *next;

}NODE;

NODE * creat_list()

{

NODE * h,* p1,*p2;

int i=1;

h=(NODE*)malloc(SIZE);

printf("请输入姓名:");

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

printf("\n请输入电话号码:");

scanf("%s",h->phone_num);

printf("\n请输入地址:");

scanf("%s",h->add);

p1=p2=h;

while(1)

{

printf("是否继续添加?输入1继续,0 结束");

scanf("%d",i);

if(0==i) break;

p1 =(NODE*)malloc(SIZE);

printf("\n请输入姓名:");

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

printf("\n请输入电话号码:");

scanf("%s",p1->phone_num);

printf("\n请输入地址:");

scanf("%s",p1->add);

p2->next=p1;

p2=p2->next;

}

p2->next=0;

return h;

}

void display(NODE * h)

{

NODE * p;

p=h;

while(p!=0)

{

printf("\n姓名:%s",p->name);

printf("\n电话:%s",p->phone_num);

printf("\n地址:%s",p->add);

p=p->next;

}

}

void search_num(NODE * h,char number[])

{

NODE * p;

while(p!=0)

{

if(strcmp(number,p->phone_num)==0)

{

printf("\n姓名:%s",p->name);

printf("\n电话:%s",p->phone_num);

printf("\n地址:%s",p->add);

return ;

}

p=p->next;

}

printf("没有所要找的号码");

}

void search_nam(NODE * h,char nam[])

{

NODE * p;

while(p!=0)

{

if(strcmp(nam,p->name)==0)

{

printf("\n姓名:%s",p->name);

printf("\n电话:%s",p->phone_num);

printf("\n地址:%s",p->add);

return ;

}

p=p->next;

}

printf("没有所要找的姓名");

}

void insert(NODE * h)

{

NODE * p1;

p1 =(NODE*)malloc(SIZE);

printf("\n请输入姓名:");

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

printf("\n请输入电话号码:");

scanf("%s",p1->phone_num);

printf("\n请输入地址:");

scanf("%s",p1->add);

p1->next=h;

h=p1;

}

void del(NODE * h)

{

char nam[20];

NODE * p,*temp;

p=temp=h;

printf("请输入所要删除人的姓名");

scanf("%s",nam);

while(strcmp(nam,p->name)==0)

{

temp=p;

p=p->next;

}

if(p==h)

{

h=h->next;

}

else

{

temp->next=p->next;

}

free(p);

}

00分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值