题解 | #密码强度等级#

密码强度等级

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;
    }
}
全部评论

相关推荐

码农索隆:这种hr,建议全中国推广
点赞 评论 收藏
分享
06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司8个岗位
点赞 评论 收藏
分享
05-22 12:44
已编辑
门头沟学院 golang
点赞 评论 收藏
分享
07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务