昨天用数组写的通讯录,今天用结构体优化一下,改的并不多 首先是定义结构体 结构体使用规则:
struct TypeName 结构变量名 = {
.成员名 = 数据1,
.成员名 = 数据2,
...
};
typedef struct lxr
{
char c;
char b[10];
char a[12];
}lxr;
lxr* lp;
基本上只修改了输入的格式,其他几乎没变所以这里只例举了add功能
void add(void)
{
int i = 0;
while(i<100)
{
if(0 == lp[i].c)
break;
i++;
}
printf("%d\n",i);
printf("请输入姓名:\n");
scanf("%s",lp[i].a);
printf("请输入电话:\n");
scanf("%s",lp[i].b);
printf("请输入级别:\n");
getchar();
scanf("%c",&lp[i].c);
getchar();
printf("添加联系人成功:%s %s %c\n",lp[i].a,lp[i].b,lp[i].c);
if(i==101)
printf("满了\n");
}
然后是主函数稍微改一下
int main(int argc,const char* argv[])
{
lp = malloc(sizeof(lxr)*100);
char x;
for(;;)
{
printf("a:添加\n");
printf("b:删除\n");
printf("c:查询\n");
printf("d:修改\n");
printf("e:显示\n");
printf("f:退出\n");
scanf("%c",&x);
getchar();
switch(x)
{
case 'a':add();
break;
case 'b':sc();
break;
case 'c':cx();
break;
case 'd':xg();
break;
case 'e':xs();
break;
case 'f':return 0;
break;
default:printf("error\n");
break;
}
}
}
|