設計一個電話號碼本算法,要求人物有兩個及以上的電話號碼的情況的C語言代碼實現
如果你不考慮可擴展性和內存的浪費問題,那麼下面這個基本符合你的要求,注意:這裡沒有進行錯誤檢測,和內存回收,這個自己可以稍加修改
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _CallBookMark
{
char name[30]; //名字
char* telephone[10]; //電話號碼,可存入10個,可根據需要添加或者減少
int count; //當前存儲多少個電話號碼
}CallBookMark, *PCallBookMark;
void Init(PCallBookMark contact, const char* name) //初始化個人電話普,只存入姓名
{
strcpy(contact->name, name);
contact->count = 0;
}
void Insert(PCallBookMark contact, const char* callNumer)
{
unsigned int numlength = strlen(callNumer) + 1; //
contact->telephone[contact->count] = (char*) malloc(numlength);
strcpy(contact->telephone[contact->count++], callNumer);
}
void Display(PCallBookMark contact)
{
unsigned count = 0;
printf("Name: %s\n", contact->name);
while(count < contact->count)
{
printf("\t%s\n", contact->telephone[count++]);
}
}
int main(void)
{
CallBookMark contact;
Init(&contact, "王小二");
Insert(&contact, "13123454435");
Insert(&contact, "13123454123");
Insert(&contact, "13123454356");
Display(&contact);
return 0;
}