牛客-C语言实现密码检查

题目描述

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

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

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

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

  4. 密码长度至少为8

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

代码:

#include 
#include 
#include 

char * is_legal (const char * str) {
    assert(str != NULL);
    if (*str >= '0' &&  *str <= '9') {
        return "NO";
    }
    if (strlen(str) < 8) {
        return "NO";
    }
    int count1 = 0,
        count2 = 0,
        count3 = 0;
    while (*str) {
        if (*str >= '0' &&  *str <= '9') {
            count1 = 1;
        }
        else if (*str >= 'a' &&  *str <= 'z') {
            count2 = 1;
        }
        else if (*str >= 'A' &&  *str <= 'Z') {
            count3 = 1;
        }
        str++;
    }

    return count1 + count2 + count3 >= 2 ? "YES" : "NO";
}

int main() {
    int n = 0;
    scanf("%d" , &n);
    getchar();
    while (n) {
        char cur_str[100] = {0};
        gets(cur_str);
        puts(is_legal(cur_str));
        n--;
    }
    return 0;
}

你可能感兴趣的:(c语言,开发语言,学习,刷题)