题解 | #密码强度等级#
密码强度等级
http://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[1000];
while(scanf("%s",str)!=EOF)
{
int i,len;
int sum=0;
int xiaoxie=0,daxie=0,hunhe=0;
int shuzi=0,fuhao=0;
int zimu=0;
len=strlen(str);
if(len<=4)
{
sum=sum+5;
}
else if(len>4&&len<=7)
{
sum=sum+10;
}
else if(len>=8)
{
sum=sum+25;
}
for(i=0;i<len;i++)
{
if(str[i]<='z'&&str[i]>='a')
{
xiaoxie=1;
}
else if(str[i]<='Z'&&str[i]>='A')
{
daxie=1;
}
else if(str[i]>='0'&&str[i]<='9')
{
shuzi++;
}
else if((str[i]>='!' && str[i] <='/') || (str[i]>=':' && str[i] <='@') ||
(str[i]>='[' && str[i] <='`') || (str[i]>='{' && str[i] <='~'))
{
fuhao++;
}
}
if(xiaoxie==1||daxie==1){
zimu=1;
}
if(xiaoxie==0&&daxie==0){
sum=sum+0;
}
else if((xiaoxie==1&&daxie==0)||(xiaoxie==0&&daxie==1)){
sum=sum+10;
}
else if(xiaoxie==1&&daxie==1){
sum=sum+20;
}
if(shuzi==0){
sum=sum+0;
}
else if(shuzi==1){
sum=sum+10;
}
else if(shuzi>1){
sum=sum+20;
}
if(fuhao==0){
sum=sum+0;
}
else if(fuhao==1){
sum=sum+10;
}
else if(fuhao>1){
sum=sum+25;
}
if(zimu==1&&shuzi>0&&fuhao==0){
sum=sum+2;
}
else if((xiaoxie==1&&daxie==0&&shuzi>0&&fuhao>0)||(xiaoxie==0&&daxie==1&&shuzi>0&&fuhao>0)){
sum=sum+3;
}
else if(daxie==1&&xiaoxie==1&&shuzi>0&&fuhao>0){
sum=sum+5;
}
if(sum>=90){
printf("VERY_SECURE\n");
}
else if(sum>=80&&sum<90){
printf("SECURE\n");
}
else if(sum>=70&&sum<80){
printf("VERY_STRONG\n");
}
else if(sum>=60&&sum<70){
printf("STRONG\n");
}
else if(sum>=50&&sum<60){
printf("AVERAGE\n");
}
else if(sum>=25&&sum<50){
printf("WEAK\n");
}
else{
printf("VERY_WEAK\n");
}
sum=0;
}
}
查看12道真题和解析