2018年PAT乙级春考B-1检查密码 15分 知识点:isalpha,isalnum,isdigit

116 阅读1分钟

1081 检查密码 - PAT (Basic Level) Practice (中文) (pintia.cn)

ps

isalnum() 函数检查给定字符是否为字母或数字。

注意,一定要用getlin(),不然会有一个测试点过不去,应该是一个测试点数据里面包含空格:

#include<iostream>
#include<cctype>
#include<cstring>
#include<string>
using namespace std;

int main()
{
    int  n=0;cin>>n;
    getchar();
    string s;
    for(int i=0;i<n;i++)
    {
       cin>>s;

        int len=s.size();

        int invaild=0,isnum=0,isAlpha=0; //每一轮都要重置
        for(int j=0;j<s.size();j++)
        {
           if(!isalnum(s[j])&&s[j]!='.')invaild=1;
           if(isdigit(s[j]))isnum=1;
           if(isalpha(s[j]))isAlpha=1;
        }   
            if(len<6)printf("Your password is tai duan le.\n");
            else if(invaild==1)printf("Your password is tai luan le.\n");
            else if(isnum==0)printf("Your password needs shu zi.\n");
            else if(isAlpha==0)printf("Your password needs zi mu.\n");
            else printf("Your password is wan mei.\n");
    }
    return 0;
}

image.png