其实密码检测程序的问题并不复杂,但是又很多的朋友都不太了解密码检测程序包括,因此呢,今天小编就来为大家分享密码检测程序的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
#include<string.h>
#include<stdlib.h>
#definepi3.1415926
floatarea(floats);
voidmain()
{
charsrmima[16],mima[16]="sunshibin1020";
inti=0,j;
floatr,s;
while(1)
{
for(j=0;j<30;j++)
printf("-");
printf("\n");
printf("请输入密码:");
gets(srmima);
for(j=0;j<30;j++)
printf("-");
printf("\n");
if(strcmp(srmima,mima)==0)
{
printf("恭喜你,密码正确!\n");
break;
}
i++;
if(i>2)
{
printf("很遗憾,密码输入错误!\n");
exit(0);
}
}
area(r);
printf("圆面积为:%f",s);
getchar();
}
floatarea(floatr)
{
floats;
while(1)
{
printf("\n请输入半径:r:");
scanf("%f",&r);
if(r<0)
break;
s=pi*r*r;
printf("s=%.2f\n",s);
}
exit(0);
}
conio.h不是c标准头文件,建议不要用这个头文件。把这个头文件删掉。
将读入密码那行的函数改用gets
gets(input_pass);
另外为了避免bug,input_pass最好弄大一点。
#include<stdio.h>
#defineUC(1U<<1)//uppercase
#defineLC(1U<<2)//lowercase
#defineNUM(1U<<3)//0-9
#defineALL(UC|LC|NUM)
intcheck(constcharpass1[],constcharpass2[])
{
constchar*p=&pass1[0];
unsignedintflag=0;
if(strlen(pass1)<6||strlen(pass1)>8)
{
printf("passwordlengthis6to8.\n");
return1;
}
if(strcmp(pass1,pass2))
{
printf("thetowpasswordsarediffrence.\n");
return2;
}
while(*p)
{
if(*p>='a'&&*p<='z')flag|=LC;
elseif(*p>='A'&&*p<='Z')flag|=UC;
elseif(*p>='0'&&*p<='9')flag|=NUM;
else
{
printf("invalidcharactor:%c.\n",*p);
return3;
}
++p;
}
if(flag==ALL)return0;
if((flag&UC)==0)
{
printf("lackofuppercase.\n");
}
if((flag&LC)==0)
{
printf("lackoflowercase.\n");
}
if((flag&NUM)==0)
{
printf("lackofnumber.\n");
}
return-1;
}
intmain(intargc,char*argv[])
{
charpass1[100];
charpass2[100];
do{
printf("inputpassword:");
scanf("%s",pass1);
printf("repeatpassword:");
scanf("%s",pass2);
}while(check(pass1,pass2)!=0);
return0;
}
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!