牛客网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月前
|
数据安全/隐私保护
1067 试密码 (20 分)
1067 试密码 (20 分)
|
8月前
|
关系型数据库 MySQL PHP
忘记Wordpress密码不要慌
忘记Wordpress密码不要慌
181 2
|
机器学习/深度学习 数据安全/隐私保护
(leecode)密码检查
小明同学最近开发了一个网站,在用户注册账户的时候,需要设置账户的密码,为了加强账户的安全性,小明对密码强度有一定要求: 1. 密码只能由大写字母,小写字母,数字构成; 2. 密码不能以数字开头; 3. 密码中至少出现大写字母,小写字母和数字这三种字符类型中的两种; 4. 密码长度至少为8
80 0
(leecode)密码检查
|
JavaScript 前端开发
记录2分钟破解知识星球验证弹窗
先声明我是这个网站的会员我可以进去
1372 0
|
数据安全/隐私保护
|
数据安全/隐私保护
PTA 1081 检查密码 (15 分)
本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点 .,还必须既有字母也有数字。
414 0
解决办法:用户名不在 sudoers文件中 此事将被报告
解决办法:用户名不在 sudoers文件中 此事将被报告
140 0
|
数据安全/隐私保护
Computer:成功教你如何使用一招—就能找回以前的密码(曾经保存的密码但当前显示为******号的密码)
Computer:成功教你如何使用一招—就能找回以前的密码(曾经保存的密码但当前显示为******号的密码)
Computer:成功教你如何使用一招—就能找回以前的密码(曾经保存的密码但当前显示为******号的密码)
|
关系型数据库 MySQL 数据库
二十、忘记root密码怎么办
二十、忘记root密码怎么办
246 0
|
算法 数据安全/隐私保护 Python
几道密码题练习记录
最近网络攻防课程中做了几道CRYPT题目,整理之后在此记录。 0x01 上学期的知识 snipaste20180522_120232.png 拿到题目,是一个包含很多16进制字节的txt文件,其中重复出现2d、20和2d,转换为ASCII码后是.-和空格。
1740 0