天天看点

检查密码 (15 分)

E 检查密码 (15 分)

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

输入格式:

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

注意: 题目保证不存在只有小数点的输入。

#include<stdio.h>
#include<iostream>
#include<cstring>
using namespace std;
int youshuzi,youzimu,youdian,youffzf;
int main(){
    int n;
    cin>>n;
    getchar();//接收回车
    for(int i= 0;i<n;i++){
        string a;
        getline(cin,a);//测试点二有空格
        int len=a.length();
        if(len<6){
            cout<<"Your password is tai duan le."<<endl;
            }else {
            for(int j=0;j<len;j++){
                if(a[j]>='a'&&a[j]<='z'||a[j]>='A'&&a[j]<='Z'){
                    youzimu++;
                }else if(a[j]>='0'&&a[j]<='9'){
                    youshuzi++;
                }else if(a[j]=='.'){
                    youdian++;
                }else{
                    youffzf++;
                }
            }
        }
        if(youzimu&&youshuzi==0&&len>=6){
            cout<<"Your password needs shu zi."<<endl;
        }else if(youshuzi&&youzimu==0&&len>=6){
            cout<<"Your password needs zi mu."<<endl;
        }else if(youffzf&&len>=6){
            cout<<"Your password is tai luan le."<<endl;
        }
        else if(youshuzi&&youzimu&&len>=6){
            cout<<"Your password is wan mei."<<endl;
        }
        youshuzi=0;
        youzimu=0;
        youdian=0;
        youffzf=0;
    }
    return 0;
}