上海家校互动平台
c语⾔随机⽣成字母,C语⾔编程实战案例——6位密码随机⽣成 器
在我们注册某些⽹站的时候,很多需要提供⼿机号,⽤来接收验证码来完成注册。我们知道,每次的验证码都是随机的,那么这⾥⾯的验证码到底是如何随机⽣成的呢?今天,我就给⼤家展⽰⼀种6位随机密码⽣成的例⼦。本算法是⼩编原创猜测,如有雷同不胜荣幸。 隧洞衬砌
⾸先贴出代码。
#include
#include
#include
char code[10];
int flag;
横结肠
void input();
void output();
void CodeGen();
void main()
{
while(1)
{
input();
output();
polo车友会}
}
void input()
{
printf(“To continue,按1继续,按0退出n”);
scanf(“%d”,&flag);
}
void output()
{
if(flag==1)
{CodeGen();
printf(“the random code for you is:%sn”,code);
}
else
printf(“thanks for using!n”);
}
void CodeGen()
{
int i,mark;
srand(time(NULL));//初始化时间种⼦
for(i=0;i<6;i++)//循环6次,⽣成6个字符密码 {mark=rand()%36;//产⽣从0到35共36个随机数,⽤来区分代表10个阿拉伯数字和26个⼩写英⽂字母
if(mark>=0&&mark<=9)
code[i]=mark+48;//如果随机数在0到9之间,则密码转化为字符型的0到9
else
code[i]=mark+87;//a的ascII码为97,⽐如随机数是10,则代表产⽣的字符是a;随机数是11,则代表产⽣的字符是b
}
code[i]=’/0′;//字符串结束符
}
程序的核⼼部分我已经做了详细注释,不再多说。主要值得⼀提的是该算法的核⼼在于srand和rand()随机数⽣成算法。srand和rand函数配合产⽣伪随机数列。srand函数在前,作⽤是初始化时间种⼦,为rand函数产⽣随机数提供种⼦。srand(unsigned T)通过参数T改变系统提供的种⼦值,从⽽使每次产⽣的种⼦值不同,这样rand函数调⽤产⽣的伪随机数就不同。通常情况下,我们可以使⽤系统时间来改变种⼦值,srand(time(NULL)),为rand函数提供不同的种⼦,从⽽产⽣不同的随机数。⾄于rand函数的⽤法,简单来讲就
是,rand()%M,M是正整数,表⽰可能随机产⽣0到M-1种随机数值。
下⾯是程序的第⼀次运⾏结果
下⾯是第⼆次运⾏结果
保护蔬菜可以看出两次⽣成的验证码都是随机的,这样基
本可以实现⽹站注册中随机⽣成验证码的需求。
今天的C编程范例就演⽰到这⾥,各位亲们有什么疑问可以评论在下⾯,我会及时给予回复哦。
>四平王宇