PAT 1081 检查密码


本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于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>
#include<string>
using namespace std;
void islegal(string password){
  bool number=false, letter=false;
  if(password.size()<6||password.size()>80){
    cout<<"Your password is tai duan le."<<endl;
    return ;
  }
  else{
    for(int i=0; i<password.size(); i++){
      if(isdigit(password[i]))
        number=true;
      else if(isalpha(password[i]))
        letter=true;
      else if(password[i]=='.')
        continue;
      else{
        cout<<"Your password is tai luan le."<<endl;
        return ;
      }
    }
    if(number&&letter)
      cout<<"Your password is wan mei."<<endl;
    else if(number)
      cout<<"Your password needs zi mu."<<endl;
    else if(letter)
      cout<<"Your password needs shu zi."<<endl;
  }
}
int main(){
  int n;
  string password;
  cin>>n;
  getchar();
  for(int i=0; i<n; i++){
    getline(cin, password);
    islegal(password);
  }
  return 0;
}
优质内容筛选与推荐>>
1、C#小知识整理一
2、LINUX的文件按时间排序
3、Servlet、Servlet容器等内容讲解
4、Codeforces Round #587 (Div. 3)
5、android AsyncHttpClient使用


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号