题解 | #密码强度等级#
密码强度等级
https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361
#include <ctype.h>
#include <stdio.h>
int main() {
int a, b,len,dand,num,el,more,all,danx,he;
char str1[300];
gets(str1);
a=b=len=dand=num=el=more=all=danx=he=0;
len=strlen(str1);
if(len<=4) all=all+5;
else if(len<=7&&len>=5) all=all+10;
else if(len>=8) all=all+25;
// printf("%d",all);
for(a=0;a<len;a++)
{
if(isdigit(str1[a])) num++;
if(isupper(str1[a]))
dand++;
if(islower(str1[a]))
danx++;
if(ispunct(str1[a])) el++;
}
// printf("%d",el);
if(num==0) all=all;
else if(num==1) all=all+10;
else if(num>1) all=all+20;
// printf("%d",all);
if(dand==0&&danx==0) all=all;
else if(dand!=0&&danx==0) all=all+10;
else if(dand==0&&danx!=0) all=all+10;//
else if(dand!=0&&danx!=0)
{
he++;
all=all+20;
}
//printf("%d",all);
if(el==0) all=all;
else if(el==1) all=all+10;
else if(el>1) all=all+25;
// printf("%d",all);
if(num!=0&&he!=0&&el!=0) all=all+5;
else if(num!=0&&dand==0&&danx!=0&&el!=0) all=all+3;
else if(num!=0&&dand!=0&&danx==0&&el!=0) all=all+3;
else if(num!=0&&dand==0&&danx!=0&&el==0) all=all+2;
else if(num!=0&&dand!=0&&danx==0&&el==0) all=all+2;
if(all>=90) printf("VERY_SECURE");
else if(all>=80&&all<90) printf("SECURE");
else if(all>=70&&all<80) printf("VERY_STRONG");
else if(all>=60&&all<70) printf("STRONG");
else if(all>=50&&all<60) printf("AVERAGE");
else if(all>=25&&all<50) printf("WEAK");
else if(all>=0&&all<25) printf("VERY_WEAK");
return 0;
}
