牛客网OR141 密码检查——“C”

简介: 牛客网OR141 密码检查——“C”

今天,小雅兰来做一道题

62e8e39fafe84648934a658bc5b3c0e1.png

这道题只需要将字符串从头到尾的每种字符(大写字符、小写字符、数字、其他字符)分别统计出来之后,然后逐个判断是否符合条件即可。而条件的判断包括有:

  • 长度不小于8
  • 不能以数字开头
  • 只能包括字母和数字
  • 大小写和字符必须具备两种以上
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
  int n = 0;
  while (scanf("%d", &n) != EOF)
  {
    int i = 0;
    for (i = 0; i < n; i++)
    {
      char password[101] = { 0 };
      int upper = 0;
      int lower = 0;
      int digit = 0;
      int other = 0;
      scanf("%s", password);//捕捉输入的密码
      if (strlen(password) < 8)//密码长度小于8
      {
        printf("NO\n");
        continue;
      }
      if (password[0] >= '0' && password[0] <= '9')
      {
        //密码以数字开头
        printf("NO\n");
        continue;
      }
      char* ptr = password;
      while (*ptr != '\0')
      {
        if (*ptr >= 'a' && *ptr <= 'z')
        {
          lower++;
        }
        else if (*ptr >= 'A' && *ptr <= 'Z')
        {
          upper++;
        }
        else if (*ptr >= '0' && *ptr <= '9')
        {
          digit++;
        }
        else
        {
          other++;
        }
        ptr++;
      }
      if (other > 0)
      {
        //有其他字符
        //题目要求:密码只能有数字和字母组成
        printf("NO\n");
        continue;
      }
      //题目要求:大写字符、小写字符、数字必须具有两种以上
      //比较运算:真为1,假为0
      if ((upper > 0) + (lower > 0) + (digit > 0) < 2)
      {
        //此代码表示密码只有一种字符
        printf("NO\n");
        continue;
      }
      printf("YES\n");
    }
  }
  return 0;
}

嘿嘿,今天内容很少噢,但还是要加油学习,加油刷题,考试不挂科!!!

7f0be606538246aab9d0867fddfda93e.jpg

相关文章
|
7月前
|
数据安全/隐私保护
华为机试HJ20:密码验证合格程序
华为机试HJ20:密码验证合格程序
|
9月前
|
机器学习/深度学习 数据安全/隐私保护
(leecode)密码检查
小明同学最近开发了一个网站,在用户注册账户的时候,需要设置账户的密码,为了加强账户的安全性,小明对密码强度有一定要求: 1. 密码只能由大写字母,小写字母,数字构成; 2. 密码不能以数字开头; 3. 密码中至少出现大写字母,小写字母和数字这三种字符类型中的两种; 4. 密码长度至少为8
46 0
(leecode)密码检查
|
安全 算法 数据安全/隐私保护
算法题解_密码
算法题解_密码
|
数据安全/隐私保护
|
前端开发 安全 JavaScript
【web渗透思路】任意账号的注册、登录、重置、查看
【web渗透思路】任意账号的注册、登录、重置、查看
591 0
【web渗透思路】任意账号的注册、登录、重置、查看
|
数据安全/隐私保护
PTA 1081 检查密码 (15 分)
本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点 .,还必须既有字母也有数字。
378 0
|
安全 算法 Java
密码转换的算法解析(简单密码)
HashMap在java编程中是非常方便对于我们赋值取值
密码转换的算法解析(简单密码)
|
前端开发 PHP 数据安全/隐私保护
laravle对密码验证,密码和重复密码
laravle对密码验证,密码和重复密码
394 0
laravle对密码验证,密码和重复密码
|
数据安全/隐私保护 索引
登陆操作:用户名和密码及进行录入判断 当用户名是li 密码是123456的时候显示登陆成功 。如果密码和用户名录入错需要循环录入。 并且录入错误次数超过三次提示:账号已锁。并且停掉循环
登陆操作:用户名和密码及进行录入判断 当用户名是li 密码是123456的时候显示登陆成功 。如果密码和用户名录入错需要循环录入。 并且录入错误次数超过三次提示:账号已锁。并且停掉循环