前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【刷题】Day4--密码检查

【刷题】Day4--密码检查

作者头像
云边有个稻草人
发布2024-10-21 20:06:30
730
发布2024-10-21 20:06:30
举报
文章被收录于专栏:C++领域相关博客

【链接】

密码检查_牛客题霸_牛客网

【思路】

依次根据规则判断密码是否合格。while里嵌套个for循环,来进行密码的多组输入,for循环进行一次代表判断一个密码串;规则判断一条条来,但凡不符合一个直接输出NO。首先不能以数字开头,此处利用ASCII值进行判断;接着利用strlen函数来计算密码串的长度;再是仅由至少大写字母,小写字母和数字中的两种组成,挨个字符进行判断,用变量加以标记。悟:不要满足这个条件就给个YES,应该是以不满足条件给NO为主,直到最后给YES。

【上代码】

代码语言:javascript
复制
#include <stdio.h>
#include<string.h>
int main() 
{
    int n=0,dight=0,big=0,small=0,other=0;
    while(~scanf("%d",&n))
    {
        for(int i=0;i<n;i++)
        {
            char arr[101]={0};
            scanf("%s",arr);
            //不能以数字开头
            if(arr[0]>='0'&&arr[0]<='9')
            {
                printf("NO\n");
                continue;
            }
            //密码长度至少为8
            if(strlen(arr)<8)
            {
                printf("NO\n");
                continue;
            }
            //大写,小写,数字组成
            for(int i=0;arr[i]!='\0';i++)
            {
                if(arr[i]>='\0'&&arr[i]<='9')
                    dight++;//数字
                else if(arr[i]>='A'&&arr[i]<='Z')
                    big++;//大写
                else if(arr[i]>='a'&&arr[i]<='z')
                    small++;//小写
                else 
                    other++;
            }
            if(other!=0)
                {
                    printf("NO\n");
                    continue;
                }
            if(((dight>0)+(small>0)+(big>0))<2)
            {
                printf("NO\n");
                continue;
            }
            printf("YES\n");
        }
    }
    return 0;
}

路漫漫其修远兮,每天进步一点点!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【思路】
  • 【上代码】
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档