设计一个电话号码本算法,要求人物有两个及以上的电话号码的情况的C语言代码实现
4条回答 默认 最新
QIUSQJF 2015-09-13 04:58关注如果你不考虑可扩展性和内存的浪费问题,那么下面这个基本符合你的要求,注意:这里没有进行错误检测,和内存回收,这个自己可以稍加修改
#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; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报