PAT-B:1081パスワードの確認(15ポイント)



1.トピック

この質問では、特定のWebサイトのユーザー登録モジュールが、パスワードの有効性を確認するための小さな関数を作成できるようにする必要があります。ウェブサイトでは、ユーザーが設定するパスワードは6文字以上である必要があり、英語の文字、数字、小数点のみを含めることができます。また、文字と数字の両方を含める必要があります。

入力フォーマット:

最初の行を入力して正の整数N(≤100)を指定し、次にN行を入力します。各行は、ユーザーが設定したパスワードを指定します。これは、80文字以下の空でない文字列であり、キャリッジリターンで終了します。 。

出力フォーマット:

ユーザーのパスワードごとに、システムフィードバック情報を次の5つのタイプに分けて1行で出力します。

  1. パスワードが有効な場合は、出力パスワードはwanmeiです。
  2. パスワードが短すぎる場合、それが合法であるかどうかにかかわらず、それは出力しますあなたのパスワードはtai duan le。;
  3. パスワードの長さが正当であるが、不正な文字が含まれている場合、出力あなたのパスワードはtai luanleです。
  4. パスワードの長さが合法であるが、文字のみで数字がない場合は、出力パスワードにshuziが必要です。
  5. パスワードの長さが合法であるが、数字のみで文字がない場合は、出力パスワードにzimuが必要です。

入力サンプル:

5
123S
zheshi.wodepw
1234.5678
WanMei23333
パス* word.6

サンプル出力:

パスワードはtaiduanleです。
パスワードにはshuziが必要です。
パスワードにはzimuが必要です。
パスワードはwanmeiです。
パスワードはtailuanleです。


2.アイデアと注意事項

  1. テストポイント2はスペースを読み取る必要があり、文字列を使用して文字列を格納できます
  2. #include "cctype"には、数字かどうかを判断するメソッド "isdigit()"と、英字かどうかを判断するメソッド "isalpha()"があります。
  3. 最初に、長さが要件を満たしているかどうかを判断します。満たされていない場合は、「続行」を使用して次のサイクルに入ります。

文字長を判断するために定義されている関数は次のとおりです。

bool judge_len(string str)
{
    
    
	if(str.length()<6) return false;
	else return true;
}


3、ACコード

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

bool judge_len(string str);

int main()
{
    
    
	int N;
	string str;
	cin>>N;
	char a=getchar();                    //吸收回车键,没有这个键会把	5当成第一串字符读进去 
	for(int i=0;i<N;i++)
	{
    
    	
		int flag_al =0;					//字符统计
		int flag_dig=0;					//数字统计
		int flag_ill=0;					//非法字母 
		getline(cin,str);
		if(judge_len(str)==0)	
		{
    
    
			cout<<"Your password is tai duan le."<<endl;
			continue;
		}
		else 
		{
    
    
			for(int i=0;i<str.length();i++)
			{
    
    
				if(isalpha(str[i]))			
				{
    
    
					flag_al=1;
				}									
				else if (isdigit(str[i])) 		
				{
    
    
					flag_dig=1;
			 	}							
				else if(!(isalpha(str[i]))&& !( isdigit(str[i]) ) && (str[i]!='.') ) 
				{
    
    
					flag_ill=1;
				}
		    }
		    //判断
			if(flag_ill==1) 				 
			{
    
    		
					cout<<"Your password is tai luan le."<<endl;	
					continue;
			}
		    else if(flag_al==1&&flag_dig==0) 
			{
    
    
					cout<<"Your password needs shu zi."<<endl;		
					continue;
			}	    
		    else if(flag_al==0&&flag_dig==1) 
			{
    
    			
					cout<<"Your password needs zi mu."<<endl;			
					continue;	
			}
		    else 
		    {
    
    
		    	if(flag_al==1&&flag_dig==1&&flag_ill==0)
		    	{
    
      
		    		cout<<"Your password is wan mei."<<endl;
		    		continue;
				}
			}
		}
	}
}

bool judge_len(string str)
{
    
    
	if(str.length()<6) return false;
	else return true;
}

結果:
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/SKMIT/article/details/114006222