inf_t getInf(void) //獲取聯(lián)系人信息
{
inf_t t_get;
char *pch;
printf("\t聯(lián)系人姓名:");
setbuf(stdin,(char *)0);
scanf("%[^\n]",t_get.name); //存入除換行以外的所有字符
printf("\t該聯(lián)系人地址:");
setbuf(stdin,(char *)0);
scanf("%[^\n]",t_get.address);
lableTel:
printf("\t電話或手機(jī)號(hào)碼:");
setbuf(stdin,(char *)0);
scanf("%s",t_get.tel);
/*處理當(dāng)號(hào)碼不為數(shù)字的情況*/
for(pch = t_get.tel; *pch != '\0'; pch++){
if(*pch < '0' || *pch > '9'){
puts("該通訊錄暫只支持純數(shù)字的電話號(hào)碼!");
goto lableTel;
}
}
return t_get;
}
void insert(inf_t inf)//創(chuàng)建一個(gè)新結(jié)點(diǎn),數(shù)據(jù)域存放inf,通過頭插法插入單鏈表
{
link p = (struct node *)malloc(sizeof *p);
p->date = inf;
p->next = head;
head = p;
}
/*匹配單鏈表中為姓名項(xiàng)為name的節(jié)點(diǎn) pre為指向該節(jié)點(diǎn)前一項(xiàng)的指針的指針 */
link pop(const char *name,link *pre){
link p = head;
while(p != NULL){
if(strcmp(name,p->date.name) == 0){
return p;
}
*pre = p;
p = p->next;
}
return NULL;
}
void del(link pre,link cur) //刪除cur結(jié)點(diǎn),pre為cur前一個(gè)結(jié)點(diǎn)
{
if(cur == head){
head = cur->next;
}
else pre->next = cur->next;
free(cur);
}
void outputOne(link p)
{
printf("|%-20s%-30s%-15s|\n",p->date.name,p->date.address,p->date.tel);
}
void output(void)
{
link p = head;
B_PUT;
while(p != NULL){
outputOne(p);
p = p->next;
}
END_PUT;
相關(guān)推薦:2011計(jì)算機(jī)等級(jí)考試二級(jí)C輔導(dǎo)實(shí)例編程匯總
計(jì)算機(jī)等級(jí)考試二級(jí)C語言歷年真題匯總(2005-2010)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |