当前位置:首页 » 编程语言 » c语言用数组保存用户手机号
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言用数组保存用户手机号

发布时间: 2022-06-15 18:01:24

c语言 随机产生10个手机号,不能重复。输入英文名后绑定手机号,一个名字一个手机号

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

constintPHONE_LENGTH=11;

constchar*PREFIX="139";

typedefstruct{

intavailable;
charnumber[PHONE_LENGTH+1];
charowner_name[31];
}PhoneNumber;


voidphoneNumberGenerator(PhoneNumber*phones,intsize,constchar*prefix);
voiddisplayPhoneNumber(PhoneNumber*phones,intsize);
intmain(void)
{


chartname[31];
intid;
PhoneNumberphones[10];

phoneNumberGenerator(phones,10,PREFIX);

displayPhoneNumber(phones,10);
while(1)
{
puts("请输入您的姓名");
scanf("%s",tname);

puts("请输入您喜欢号码的编号");
scanf("%d",&id);

if(phones[id].available)
{
strcpy(phones[id].owner_name,tname);

phones[id].available=0;

displayPhoneNumber(phones,10);
}else
{
puts("此号已被占用,请选择其他的号码");

}}return0;
}


voidphoneNumberGenerator(PhoneNumber*phones,intsize,constchar*prefix)
{

intrepeat;//重复标志变量

for(inti=0;i<size;++i)
{

strncpy(phones[i].number,prefix,strlen(prefix));//复制号码前缀
phones[i].available=1;//初始化号码为可用
strcpy(phones[i].owner_name,"unknow");//初始化号码的拥有着为"unknow"//开始产生号码
do{

repeat=0;
/*******************产生一个随机号码******************/
for(intj=strlen(prefix);j<PHONE_LENGTH;++j)
{
(phones[i].number)[j]=rand()%10+'0';

}
(phones[i].number)[PHONE_LENGTH]='';

/************************检测重复性**************************/
for(intk=0;k<i;k++)
{
if(strcmp(phones[i].number,phones[k].number)==0)
{
repeat=1;
break;

}

}
}while(repeat);//如果当前产生的号码与之前的重复了,则再生成一个,直到不重复为止

}}


voiddisplayPhoneNumber(PhoneNumber*phones,intsize)
{


printf("%-5s%-20s%-10s%s ","编号","号码","状态","拥有者");
for(inti=0;i<size;++i)
{


printf("%-5d%-20s%-10s%s ",i,phones[i].number,phones[i].available?"可用":"已占用",phones[i].owner_name);


}

}

㈡ 用C语言编写命令行界面数组保存的通讯录程序

我可以发给你!给我你的邮箱.运行环境是VS2008

㈢ 如何用C语言中的数组编写一个通讯录

写了一个 ,行就支持一下 啊,呵呵呵
#include <stdio.h>
#include <string.h>
struct pep_list{ /*定义一个通讯录结构*/
char name[10];
int age;
char telephone[13];
};
int count=0; /*定义整个人数的全局变量计数*/
int count1=0; /*定义朋友人数的全局变量计数*/
int count2=0; /*定义家人人数的全局变量计数*/
int count3=0; /*定义陌生人数的全局变量计数*/
int c,b,a; /*为46 47 48行的赋值做准备*/
struct pep_list peps[50]; /*定义储存所有人的数组*/
struct pep_list friends[50]; /*定义储存朋友的数组*/
struct pep_list families[50]; /*定义储存家人的数组*/
struct pep_list unknows[50]; /*定义储存陌生人的数组*/
struct pep_list pp[50];
struct pep_list p[50];

void new_pep(struct pep_list peps[]); /*自定义函数*//*总的人数*/
void search_pep(struct pep_list peps[]); /*自定义函数*//*查询*/
void delete_pep(struct pep_list peps[]); /*删除*/
/*显示*/
void xianshi_pep(struct pep_list peps[],struct pep_list friends[],struct pep_list families[],struct pep_list unknows[]);
void xgxx_pep(struct pep_list peps[]);/*重新命名*/
int main(void)
{
int choice,choice1,choice2,choice3,choice4;

printf("\t \t********NOKIA 专用通讯录*********\n");
printf("\n\n");

do
{

printf("\n功能表:\n[1]:新建\n[2]:查询\n[3]:删除\n[4]:显示组员\n[5]:修改信息\n[0]:退出\n");
printf("\n选择你要的功能:\n");
scanf("%d",&choice);

switch(choice)
{ /*新建项*/
case 1:new_pep(peps);
printf("是否需要分组?\n"); /*分组提示*/
printf("\n[1]:是[2]:否");
scanf("%d",&choice3);
switch(choice3)
{
case 1:printf("[1]:朋友[2]:家人[3]:陌生人");
scanf("%d",&choice4);
switch(choice4)
{
case 1:friends[count1]=pp[1];count1++;break; /*将第一个子函数中的信息值赋值给朋友*/
case 2:families[count2]=pp[1];count2++;break; /*将第一个子函数中的信息值赋值给家人*/
case 3:unknows[count3]=pp[1];count3++;break; /*将第一个子函数中的信息值赋值给陌生人*/
}
break; /*注意此处的break一定不能少*/
case 2:break;
}
break; /*注意此处的break一定不能少*/

/*查询项*/
case 2:

search_pep(peps);
printf("还要使用该功能吗?");
printf("\n[1]:继续[2]:退出");
scanf("%d",&choice1);
switch(choice1)
{
case 1:continue;
case 2:goto next;
}
case 3:delete_pep(peps);break;
case 4:xianshi_pep(peps,friends,families,unknows);break;
case 5:xgxx_pep(peps);break;
case 0:break;
}

printf("还要使用该功能吗?");
printf("\n[1]:继续[2]:退出");
scanf("%d",&choice1);
switch(choice1)
{
case 1:continue; /*返回到do句中*/
case 2:goto next;
}

next: /*标签*/

printf("确定退出吗?");
printf("\n[1]:确定[2]继续");
scanf("%d",&choice2);
if(choice2==1)
break;
if(choice2==2)
continue; /*返回到do句中*/
}while(choice!=0);

printf("谢谢使用#NOKIA\n");

getch();

}

/*新建*/
void new_pep(struct pep_list peps[])
{
struct pep_list f;
/*定义一个结构型变量储存输入的名片*/
if(count==50)
{
printf("满员!\n");
return;
}
printf("联系人姓名:");
scanf("%s",f.name);
printf("\n年龄:");
scanf("%d",&f.age);
printf("\n号码:");
scanf("%s",f.telephone);
peps[count]=pp[1]=f; /*将输入的名片赋值给住函数中定义的整体数组*/
/*将输入的名片赋值给住函数中定义的辅助数组,是为59 60 61行做准备*/
count=count+1;
return;
}

/*查找组员*/
void search_pep(struct pep_list peps[])
{ char name[10];

int flag=0,i;
printf("输入姓名:");
scanf("%s",name);
if(count==0)
{
printf("通讯录为空!");
return;
}
for(i=0;i<count;i++)
{
if(strcmp(name,peps[i].name)==0) /*比较*/
flag=1;

break;

}
if(flag)
{
printf("\n姓名:%s",peps[i].name);
printf("\n年龄:%d",peps[i].age);
printf("\n号码:%s",peps[i].telephone);
}
else
printf("无此人!");
return;

}

/*删除组员*/
void delete_pep(struct pep_list peps[])

{

char name[10];
int i,j,choice;
printf("输入你要删除的名片的姓名:");
scanf("%s",name);
if(count==0)
printf("无人!");
else
{
for(i=0;i<count;i++)
{
if(strcmp(name,peps[i].name)==0) /*在名片里找名字*/
{
if(i==count-1) /*当删除最后一项时只需减少位数 不需在从后向前赋值*/
{
count=count-1;
printf("删除成功");
return;
}

for(j=i;j<count;j++)
{
strcpy(peps[j].name,peps[j+1].name); /*后一项的名字附到前一项*/
strcpy(peps[j].telephone,peps[j+1].telephone); /*后一项的号码附到前一项*/
peps[j].age=peps[j+1].age; /*后一项的年龄附到前一项*/
}
printf("\n删除成功");
count=count-1;
printf("\n是否显示所有组员?");
printf("[1]:是[2]:否");
scanf("%d",&choice);
switch(choice)
{
case 1:if(count==0)
printf("\n无人");
for(i=0;i<count;i++)
printf("\n姓名:%s 年龄:%d 号码:%s",peps[i].name,peps[i].age,peps[i].telephone);
break;
case 2:break;
}
break;
}
return;
}

}
if(i==count-1)
{
printf("查无此人");
return;
}

}

/*显示组员*/
void xianshi_pep(struct pep_list peps[],struct pep_list friends[],struct pep_list families[],struct pep_list unknows[])
{
int i,choice;

printf("\n[1]:显示全体组员 [2]:显示分组队员"); /*提示是否显示组员*/
scanf("%d",&choice);
switch(choice)
{
case 1:if(count==0)
printf("无人");
for(i=0;i<count;i++)
{
printf("姓名:%s 年龄:%d 号码:%s\n",peps[i].name,peps[i].age,peps[i].telephone);

}
return;
case 2:
printf("[1]:显示朋友[2]:家人[3]:陌生人");
scanf("%d",&choice);
switch(choice)
{
case 1:if(count1==0)
printf("无人");
for(i=0;i<count1;i++)
/*输出组员*/
printf("姓名:%s 年龄:%d 号码:%s \n",friends[i].name,friends[i].age,friends[i].telephone);break;
case 2:if(count2==0)
printf("无人");
for(i=0;i<count1;i++)
printf("姓名:%s 年龄:%d 号码:%s \n",families[i].name,families[i].age,families[i].telephone);break;
case 3:if(count3==0)
printf("无人");
for(i=0;i<count1;i++)
printf("姓名:%s 年龄:%d 号码:%s \n",unknows[i].name,unknows[i].age,unknows[i].telephone);break;
}
return;

}

}

/*修改信息*/
void xgxx_pep(struct pep_list peps[])
{
char name[10],name2[10],telephone[10];
int i,choice;
if(count==0)
{
printf("无人\n");
return;
}
printf("输入你想改信息人的名字:");
scanf("%s",name);
for(i=0;i<count;i++)

if(strcmp(peps[i].name,name)==0)
{
printf("[1]:修改姓名 [2]:修改号码\n");
scanf("%d",&choice);
switch(choice)
{

case 1:
printf("输入新的名字\n");
scanf("%s",name2);
strcpy(peps[i].name,name2);
break;
case 2:
printf("输入新的号码");
scanf("%s",telephone);
strcpy(peps[i].telephone,telephone);
break;
}
printf("是否显示改过的组员?");
printf("\n[1]:是[2]:否");
scanf("%d",&choice);
switch(choice)
{
case 1:
for(i=0;i<count;i++)
printf("姓名:%s 年龄:%d 号码:%s\n",peps[i].name,peps[i].age,peps[i].telephone);
case 2:break;
}
return;
}
}

㈣ 用C语言解决…… 定义一个二维数组,存储5个人的姓名和电话号码,从键盘输入姓名后,要求能输出电话号码

#include<stdio.h>
#include<string.h>
void main()
{
int i;
char a[10][20],b[20];
printf("依次按对输入5个人的姓名和电话号码,如:张三 12345678 李四 87654321...\n");
for(i=0;i<10;i++)
scanf("%s",a[i]);
printf("输入要查询的姓名(输入q结束):");
scanf("%s",b);
while(b[0]!='q')
{
for(i=0;i<5;i++)
{
if( !strcmp(b,a[2*i]) )
{
printf("电话号码是:%s\n\n",a[2*i+1]);
break;
}
}
if(i==5)
printf("查无此人!\n\n");
printf("输入要查询的姓名(输入q结束):");
scanf("%s",b);
}
}

㈤ 请问各位大神,C语言中,保存用户使用信息的代码是什么

我来帮你回答你的追问。
1,那个文件是它举得例子。没有在那个盘。比如我TEST.TXT的在C盘的根目录下,这个是我自己建立的。
2那个WR+ 我至少是没看到过的,我看到的有W,R什么的。没有那个。。额。书上有那段程序。我给你写写。就是打开文件的代码。
if((fp = fopen("text.txt","r")) == NULL)
{
printf("can not open file!");
exit (0);
}
3.那个FILE是和INT CHAR 差不多的。它是指向文件的。

㈥ 用c语言怎么把一个存有姓名和电话号码的文档读入到数组

typedef struct
{
char name[32];

char phone[32;

int value;

}T_Student;

char name[32];
char phone[32];
int value;
T_Student stu[10];
int curStu=0;

f=fopen()
//check f is valid
while(!feof(f)
{
int ret=fscanf(f,"%s %s %d",name,phone,&value)
//check fscanf ok
//process values from file to stu[curStu]
curStu++;

}
fclose(f)

㈦ C语言用结构数组建立5人通讯录,包括姓名地址,电话号且能根据输入的名字查找对应电话

so easy!!
#include<stdio.h>
#include<string.h>
main()
{char student1[20];
struct student
{char name[20];
unsigned long int phone;
char add[100];
};
struct student stud[3]={{"1",1,"1"},{"2",2,"2"},{"3",3,"3"}};
printf("请输入你要找的人:");
scanf("%s",student1);
for(int i=0;i<=4;i++)
{if(strcmp(student1,stud[i].name)==0)
{ printf("姓名:%s\n电话:%d\n地址:%s\n",stud[i].name,stud[i].phone,stud[i].add);

}
}
}

㈧ 求用c语言编译的 通讯录 (命令行界面数组保存 )

我来了 帮你完成

㈨ c语言​定义一个二维数组,存储5个人的姓名和电话号码,从键盘输入姓名后,要求输出电话号码。

#include<stdio.h>
#include<string.h>
voidlookup(char*a[][2],intn,char*name)
{
inti;
for(i=0;i<5;i++)
{
if(strcmp(a[i][0],name)==0)
{
printf("他/她的电话号码是:%s ",a[i][1]);
return;
}
}
printf("没有此人 ");
}
intmain()
{

char*a[5][2]={{"张三","1307100"},
{"李小四","1307101"},
{"LiLei","1307102"},
{"HanMeimei","1307103"},
{"张三丰","1307104"}
};
printf("输入一个姓名: ");
charname[32];
gets(name);
printf("%s ",name);
lookup(a,5,name);
return0;
}


dty@ubuntu:~$ ./a.out

输入一个姓名:

张 三 丰

张 三 丰

他/她的电话号码是:1307104

㈩ 用c语言编写一个通讯录程序,数组保存

1、 用结构体数组编程实现一个通讯录程序,本通讯录最多容纳5人;通讯录文件为AddressBook.dat;
2、 本通讯录程序实现以下功能:
a) 增加记录:本功能模块是将一个人的信息输入到通讯录中;当通讯录中信息达到5人时提示“此通信录中已有5人的信息,无法再添加!”;增加记录时输入人名和此人的电话后,要先判断通信录中是否有此人,如有提示“此通信录中已经有此人的信息,无法再添加!”,否则,添加后提示“目前通讯录中查无此人,增加记录成功!”。
b) 显示记录:本功能模块是将通讯录中每个人的信息都显示到电脑屏幕上;如果通讯录为空,提示“目前通讯录为空,没有任何人的信息可显示!”。
c) 删除记录:本功能模块是将某个人的信息从通讯录中删除;请根据输入的人名来删除记录;如果通讯录在删除前已经为空,则提示“目前通讯录为空,没有任何人的信息可删除!”;如果通讯录虽然不为空,但没有此人,则提示“通讯录中没有此人,无法删除!”;如果通讯录不为空且有此人信息,删除成功后提示“通讯录中此人的信息已成功删除!”
d) 保存记录:本功能模块是将所有变更的信息写入通讯录文件中;首先判断以写方式打开文件AddressBook.dat是否成功,如果不成功则提示“打开文件失败”,如果打开成功,但没有任何信息需要保存到通信录中(即通信录为空),则提示“目前通讯录为空,没有任何人的信息需存储!”,如果文件打开成功,且有数据需要保存,则在保存文件成功后提示“保存文件成功!”,保存文件失败时提示“保存文件失败!”;
e) 查询记录:本功能模块是在通讯录中查询是否有某个人的信息;请根据输入的人名来查询记录;如果有此人,则显示此人的信息;否则提示“目前通讯录中查无此人!”;
f) 修改记录:本功能模块是在通讯录中修改某个人的信息;请根据输入的人名来修改记录;如果通信录为空,则提示“目前通讯录为空,没有任何人的信息可修改!”;如果通讯录中查无此人,则提示“通讯录中找不到此人,无法修改!”,否则提示“请输入此人最新的信息”后开始输入此人的新的姓名和电话号码,再次提示“现修改为的信息如下:Name:XXXX----Tel:XXXX”,并替换此人以前的信息,最后提示“修改成功”;
g) 退出系统:本功能模块是用来退出本程序的;退出之前需要根据操作提示是否“存盘”;当执行了“增加记录”、“删除记录”,“修改记录”功能后但没有执行“保存记录”功能时需要提示“通信录中信息有修改,是否存盘?(Y/N)”。存盘后退出前显示通信录中的所有信息,再提示“欢迎使用,谢谢!再见!”;
3、 通讯录中每个人的信息包含姓名、电话号码两部分组成,可用以下结构体类型定义:
struct address_info
{ char name[20];
char tel[20];
};
4、 程序开始执行时,要首先确认磁盘上是否有此文件。如果有,首先要将文件中的内容读出,放到结构体数组中,并对结构体数组没有使用的元素初始化,如果通讯录中已有5人,则提示“通讯录已满”。如果没有,则需结构体数组全部初始化;并要在执行“保存记录”功能时创建此文件
5、 提示:定义一个全局数组struct address_info addrinfo[5];来存储最多5个人的信息。定义一个全局整型变量Maxindex保存上面数组目前使用的最大下标;定义一个全局整型变量ischange来跟踪记录通讯录中内容是否变化过,以便存盘提示。