加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Contact.c 2.89 KB
一键复制 编辑 原始数据 按行查看 历史
王振宇 提交于 2022-03-28 14:45 . 通讯录
#define _CRT_SECURE_NO_WARNINGS 1
#include "Contact.h"
int FindByName(Infoarr* cp, char* name)
{
int i = 0;
for (i = 0; i < cp->sz; i++)
{
if (0 == strcmp(cp->info[i].name, name))
return i;
}
return -1;
}
void InitInfoarr(Infoarr* cp)
{
cp->sz = 0;
memset(cp->info, 0, sizeof(cp->info));
}
void Add(Infoarr* cp)
{
if (cp->sz == MAX)
{
printf("通讯录已满,无法添加\n");
return;
}
printf("请输入姓名:>");
scanf("%s", &cp->info[cp->sz].name);
printf("请输入性别:>");
scanf("%s", &cp->info[cp->sz].sex);
printf("请输入年龄:>");
scanf("%d", &cp->info[cp->sz].age);
printf("请输入号码:>");
scanf("%s", &cp->info[cp->sz].number);
printf("请输入地址:>");
scanf("%s", &cp->info[cp->sz].addr);
cp->sz++;
printf("添加成功\n");
}
void Del(Infoarr* cp)
{
char Name[NAME] = { 0 };
printf("请输入要删除的人的名字:>");
scanf("%s", Name);
int ret = FindByName(cp,Name);
if (ret == -1)
printf("未能查找到要删除的目标\n");
else
{
int i = 0;
for (i = ret; i < cp->sz - 1; i++)
cp->info[i] = cp->info[i + 1];
printf("删除成功\n");
}
cp->sz--;
}
void Print(Infoarr* cp)
{
int i = 0;
printf("%-20s %-5s %-5s %-12s %-30s\n", "姓名", "性别", "年龄", "号码", "地址");
for (i = 0; i < cp->sz; i++)
{
printf("%-20s %-5s %-5d %-12s %-30s\n", cp->info[i].name, cp->info[i].sex, cp->info[i].age, cp->info[i].number, cp->info[i].addr);
}
}
void Search(Infoarr* cp)
{
char Name[NAME] = { 0 };
printf("请输入要查找的人的名字:>");
scanf("%s", Name);
int ret = FindByName(cp, Name);
if (ret == -1)
printf("未能查找到目标\n");
else
{
printf("%-20s %-5s %-5s %-12s %-30s\n", "姓名", "性别", "年龄", "号码", "地址");
printf("%-20s %-5s %-5d %-12s %-30s\n", cp->info[ret].name, cp->info[ret].sex, cp->info[ret].age, cp->info[ret].number, cp->info[ret].addr);
}
}
void Modify(Infoarr* cp)
{
char Name[NAME] = { 0 };
printf("请输入要修改的人的名字:>");
scanf("%s", Name);
int ret = FindByName(cp, Name);
if (ret == -1)
printf("未能查找到要修改目标\n");
else
{
printf("请输入要修改的姓名:>");
scanf("%s", &cp->info[ret].name);
printf("请输入要修改的性别:>");
scanf("%s", &cp->info[ret].sex);
printf("请输入要修改的年龄:>");
scanf("%d", &cp->info[ret].age);
printf("请输入要修改的号码:>");
scanf("%s", &cp->info[ret].number);
printf("请输入要修改的地址:>");
scanf("%s", &cp->info[ret].addr);
printf("修改成功\n");
printf("%-20s %-5s %-5s %-12s %-30s\n", "姓名", "性别", "年龄", "号码", "地址");
printf("%-20s %-5s %-5d %-12s %-30s\n", cp->info[ret].name, cp->info[ret].sex, cp->info[ret].age, cp->info[ret].number, cp->info[ret].addr);
}
}
void Sort(Infoarr* cp, Infoarr* cp1)
{
for (int i = 0; i < cp->sz-1; i++)
{
for (int j = 0; j < cp->sz - 1 - i; j++)
{
int ret = strcmp(cp->info[j].name, cp->info[j + 1].name);
if (0 < ret)
{
cp1->info[j] = cp->info[j];
cp->info[j] = cp->info[j + 1];
cp->info[j + 1] = cp1->info[j];
}
}
}
printf("排序成功\n");
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化