|
用C语言编通讯录程序(初学者级别的)(3) return 0; }//int main
/* 输入新的通信录 */ void insert( ADDR *ptr) { char *spt; ADDR *p;
while (1) { printf("名字? (立即回车表示结束) "); if (getstr(stdin, &spt) ==0) break; p = (ADDR *)malloc(sizeof(ADDR)); p->name = spt; printf("地址? "); getstr(stdin, &p->address); printf("邮编? "); getstr(stdin, &p->zip); printf("电话号码? "); getstr(stdin, &p->phone); p->next = NULL; p->pre = NULL; make(ptr, p); modified = 1; } } /* 将*p插入链表 */ void make(ADDR *ptr, ADDR *p) { ADDR *pre, *suc; pre = ptr; suc = pre->next; while (suc) { if (strcmp(suc->name,p->name) >= 0) break; pre = suc; suc = pre->next; } pre->next = p; p->pre = pre; p->next = suc; if(suc) suc->pre = p; } void find( ADDR *ptr ) { ADDR *p; printf("输入寻找的名: "); while (getbuffer(stdin) == 0); p = ptr->next; while (p) { if (strcmp(buffer, p->name) == 0) break; p = p->next; } if (p) display(p); else printf("末找到!\n"); } /* 删除指定的通信录 */ void del( ADDR *ptr ) { ADDR *pre, *suc; printf("输入要删除的通信录的名: "); while (getbuffer(stdin) == 0) ; /* 跳过空行 */ pre = ptr; suc = pre->next; while (suc) { if (strcmp(suc->name, buffer) == 0) break; pre = suc;
|