• 1081 检查密码 (15 分)


    本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点 .,还必须既有字母也有数字。

    输入格式:

    输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串,以回车结束。

    输出格式:

    对每个用户的密码,在一行中输出系统反馈信息,分以下5种:

    • 如果密码合法,输出Your password is wan mei.
    • 如果密码太短,不论合法与否,都输出Your password is tai duan le.
    • 如果密码长度合法,但存在不合法字符,则输出Your password is tai luan le.
    • 如果密码长度合法,但只有字母没有数字,则输出Your password needs shu zi.
    • 如果密码长度合法,但只有数字没有字母,则输出Your password needs zi mu.

    输入样例:

    5
    123s
    zheshi.wodepw
    1234.5678
    WanMei23333
    pass*word.6
    

    输出样例:

    Your password is tai duan le.
    Your password needs shu zi.
    Your password needs zi mu.
    Your password is wan mei.
    Your password is tai luan le.
    #include<iostream>
    using namespace std;
    const int maxn = 110;
    
    int main(){
        int n;
        cin >> n;
        string s;
        getchar();
        while(n--){
            getline(cin,s);
            //cin >> s;
            bool tag[4] = {false};
            if(s.length() < 6){
                cout << "Your password is tai duan le." << endl;
                continue;
            }
            for(int i = 0; i < s.length(); i++){
                if(s[i] >= '0' && s[i] <= '9')
                     tag[0] = true;
                else if((s[i] >= 'a' && s[i] <= 'z')||(s[i] >= 'A' && s[i] <= 'Z')) tag[1] = true;
                else if(s[i] == '.') tag[2] = true;
                else tag[3] = true;
            }
            if(tag[3]) cout <<"Your password is tai luan le." << endl;
            //tag[0] == 1表示有数字,tag[1]  == 1表示有字母 
            else if(tag[1] == false) cout <<"Your password needs zi mu." << endl;
            else if(tag[0] == false)cout << "Your password needs shu zi." << endl;
            else cout <<"Your password is wan mei." << endl;
            for(int i = 0 ; i < 4; i++) tag[i] = false;
        }
        return 0;
    }
  • 相关阅读:
    第一讲 jQuery入门
    Log4j日志记录
    第四讲 Hibernate 缓存管理
    第一讲 Hibernate 简介
    第三讲 Spring 持久层封装、事务控制
    对 PInvoke 函数的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标
    善用 C# 3.0 Extensions 方法
    .net 下如何将文档文件(Word, Pdf等) 中的文本提取出来(转)
    vs2010常用快捷键 (转)
    Silverlight 视频学习札记(一)
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/10427471.html
Copyright © 2020-2023  润新知