(leecode)密码检查

简介: 小明同学最近开发了一个网站,在用户注册账户的时候,需要设置账户的密码,为了加强账户的安全性,小明对密码强度有一定要求:1. 密码只能由大写字母,小写字母,数字构成;2. 密码不能以数字开头;3. 密码中至少出现大写字母,小写字母和数字这三种字符类型中的两种;4. 密码长度至少为8


有点感觉,试试看~




先贴解法,再说题目和思路

题解

#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() 
{
    int N = 0;
    scanf("%d",&N);
    getchar();
    while(N--)    
    {
        char str[101] = {0};
        scanf("%s",str);
        getchar();
        int len = strlen(str);
        if(len<8)
        {
            printf("NO\n");
            continue;
        }
        if(isdigit(str[0]))
        {
            printf("NO\n");
            continue;
        }
        int arr[3] = {0};
        for(int i=0; i<len; i++)
        {
            if(islower(str[i]))
                arr[0] = 1;
            else if(isdigit(str[i]))
                arr[1] = 1;
            else if(isupper(str[i]))
                arr[2] = 1;
        }
        if(arr[0] + arr[1] + arr[2] >= 2)
            printf("YES\n");
        else
            printf("NO\n");
    }
    return 0;
}


题目

描述

小明同学最近开发了一个网站,在用户注册账户的时候,需要设置账户的密码,为了加强账户的安全性,小明对密码强度有一定要求:


1. 密码只能由大写字母,小写字母,数字构成;


2. 密码不能以数字开头;


3. 密码中至少出现大写字母,小写字母和数字这三种字符类型中的两种;


4. 密码长度至少为8


现在小明受到了n个密码,他想请你写程序判断这些密码中哪些是合适的,哪些是不合法的。


输入描述:

输入一个数n,接下来有n(n≤100)行,每行一个字符串,表示一个密码,输入保证字符串中只出现大写字母,小写字母和数字,字符串长度不超过100。


输出描述:

输入n行,如果密码合法,输出YES,不合法输出NO


示例:




思路

1:无需理会,输入已经保证了


2:单独判断即可


3:计算长度,小于8就NO


4:开一个数组,遍历密码,在下标为0,1,2的位置分别判断,他们分别代表小写字母,数字,大写字母,符合就置1,最后加起来>=2,就YES,否则NO

目录
相关文章
|
Linux Shell 数据安全/隐私保护
Linux修改密码是提示“passwd: 鉴定令牌操作错误”问题的处理办法
今早忽然想修改一下一个普通用户的密码,root登录进去之后键入修改密码命令之后发现提示“passwd: 鉴定令牌操作错误”。
7196 0
|
5月前
|
数据安全/隐私保护
1067 试密码 (20 分)
1067 试密码 (20 分)
|
5月前
|
数据安全/隐私保护
1081 检查密码 (15 分)
1081 检查密码 (15 分)
|
6月前
|
安全 BI 数据安全/隐私保护
每天一道C语言编程:合格密码的判定
每天一道C语言编程:合格密码的判定
44 0
|
6月前
|
数据安全/隐私保护
HJ20 密码验证合格程序
HJ20 密码验证合格程序
45 0
|
Java
hdu1279 验证角谷猜想
hdu1279 验证角谷猜想
54 0
|
数据安全/隐私保护
华为机试HJ20:密码验证合格程序
华为机试HJ20:密码验证合格程序
|
数据安全/隐私保护
牛客网OR141 密码检查——“C”
牛客网OR141 密码检查——“C”
|
数据安全/隐私保护
|
安全 算法 Java
密码转换的算法解析(简单密码)
HashMap在java编程中是非常方便对于我们赋值取值
密码转换的算法解析(简单密码)