1 Star 0 Fork 0

LC.yulin/C.语言

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
contact.c 2.77 KB
一键复制 编辑 原始数据 按行查看 历史
LC.yulin 提交于 2022-03-15 08:34 . C语言初阶代码详解
#include"contact.h"
//函数的实现
void Initcontact(struct contact* ps)
{
memset(ps->data, 0, sizeof(ps->data));
ps->count = 0;
}
void addcontact(struct contact* ps)
{
if (ps->count == max)
{
printf("通讯录已满,无法增加\n");
}
else
{
printf("请输入名字:");
scanf("%s", ps->data[ps->count].name);
printf("请输入性别:");
scanf("%s", ps->data[ps->count].sex);
printf("请输入年龄:");
scanf("%d",&( ps->data[ps->count].age));
printf("请输入电话:");
scanf("%s", ps->data[ps->count].tele);
printf("请输入地址:");
scanf("%s", ps->data[ps->count].addr);
ps->count++;
printf("添加成功\n");
}
}
void showcontact(const struct contact* ps)
{
if (ps->count == 0)
{
printf("通讯录为空\n");
}
else
{
int i = 0;
printf("%-20s\t%-5s\t%-5s\t%-10s\t%-10s\n", "名字", "性别", "年龄", "电话", "地址");
for (i = 0; i < ps->count; i++)
{
printf("%-20s\t%-5s\t%-5d\t%-10s\t%-10s\n",
ps->data[i].name,
ps->data[i].sex,
ps->data[i].age,
ps->data[i].tele,
ps->data[i].addr);
}
}
}
static int Findbyname(const struct contact* ps, char name [max_name])
{
int i = 0;
for (i = 0; i < ps->count; i++)
{
if (0 == strcmp(ps->data[i].name, name))
{
return i;
}
}
return -1;
}
void delcontact(struct contact* ps)
{
char name[max_name];
printf("请选择要删除的人:");
scanf("%s", name);
//查找要删除的人在什么位置
//找到返回下标
//找不到返回-1;
int pos = Findbyname(ps, name);//在ps指向的结构体中查找name,返回下标;
if (-1==pos)
{
printf("要删除的人不存在\n");
}
//2.删除
else
{
//将查找到的人信息,通过后一个信息进行覆盖,达到删除的信息丢失
int j = 0;
for (j = pos; j < ps->count-1; j++)
{
ps->data[j] = ps->data[j + 1];
}
ps->count--;
printf("删除成功\n");
}
}
void searchcontact(const struct contact* ps)
{
char name[max_name];
printf("请输入需要查找的人名字:");
scanf("%s", name);
int pos = Findbyname(ps, name);//在ps指向的结构体中查找name,返回下标;
if (-1 == pos)
{
printf("要查找的人不存在\n");
}
else
{
printf("%-20s\t%-5s\t%-5s\t%-10s\t%-10s\n", "名字", "性别", "年龄", "电话", "地址");
printf("%-20s\t%-5s\t%-5d\t%-10s\t%-10s\n",
ps->data[pos].name,
ps->data[pos].sex,
ps->data[pos].age,
ps->data[pos].tele,
ps->data[pos].addr);
}
}
void modeifycontact(struct contact* ps)
{
char name[max_name];
printf("请输入需要修改的人名字:");
scanf("%s", name);
int pos = Findbyname(ps, name);
if (-1 == pos)
{
printf("要修改的人信息不存在\n");
}
else
{
printf("请输入名字:");
scanf("%s", ps->data[pos].name);
printf("请输入性别:");
scanf("%s", ps->data[pos].sex);
printf("请输入年龄:");
scanf("%d", &(ps->data[pos].age));
printf("请输入电话:");
scanf("%s", ps->data[pos].tele);
printf("请输入地址:");
scanf("%s", ps->data[pos].addr);
printf("修改成功\n");
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/lc-yulin/c-language.git
git@gitee.com:lc-yulin/c-language.git
lc-yulin
c-language
C.语言
master

搜索帮助