PAT B1081は、パスワードを確認します(15ポイント)

トピックリンクhttps://pintia.cn/problem-sets/994805260223102976/problems/994805261217153024

タイトル説明は
このタイトルは小さな特徴の合法性を確認するためにパスワードを記述するために、サイトのユーザー登録モジュールを支援する必要があります。サイトには、以下6以上の文字で構成しなければならないパスワードを設定するユーザーを必要とし、唯一の文字、数字、小数点は、どちらの文字も数字を持っている必要がありますすることができます。

入力
N行続いてN整数正の最初の行(≤100)、所与の入力は、各行が終了を入力し、パスワードのユーザによる設定、文字のない80以上の非空の文字列が与えられます。

出力
行のフィードバック情報出力システム内の各ユーザーのパスワードについて、次の5つのポイント:

パスワードが正当なものである場合には、出力あなたのパスワードISはMEIをワン;。
パスワードが短すぎると、正当かどうか、出力があなたのパスワードは太極拳ドゥアンルであり、
パスワードの長さ、正当な場合は、しかし、法的な文字がない、出力があなたのパスワードは太極拳ルアンありますル;
パスワード長正当が、唯一の文字数ではなく、あなたのパスワードはシュウのZIを必要とする出力の場合;
パスワード長正当が、唯一の数字でない文字場合は、出力があなたのパスワードはZIムーを必要とします。..

サンプル入力
5
123S
zheshi.wodepw
1234.5678
WanMei23333
パス* word.6

样例输出
パスワードは太極拳ドゥアンルです。
パスワードは集のZIを必要とします。
パスワードはZIムーを必要とします。
パスワードのISは、メイをワン。
パスワードは太極拳ルアンルです。

コード

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

int main() {
	string str;
	int n, len;
	cin >> n;			
	getchar();
	for(int i = 0; i < n; i++) {
		getline(cin, str);
		len = str.size();
		if(len < 6) {
			cout << "Your password is tai duan le." << endl;
			continue;
		}
		bool flag1 = false, flag2 = false, flag3 = false;
		for(int j = 0; j < len; j++) {
			char c = str[j];
			if(c >= 'A' && c <= 'Z')
				c = c - 'A' + 'a';
			if(c >= '0' && c <= '9')
				flag3 = true;
			else if(c >= 'a' && c <= 'z')
				flag2 = true;
			else if (c == '.');
			else
				flag1 = true;
		}
		if(flag1) {
			cout << "Your password is tai luan le." << endl;
		}
		else if(flag2 && !flag3)
			cout <<"Your password needs shu zi." <<endl;
		else if(flag3 && !flag2)
			cout << "Your password needs zi mu." << endl;
		else 
			cout << "Your password is wan mei." << endl;
	}
	return 0;
}
公開された327元の記事 ウォン称賛12 ビュー20000 +

おすすめ

転載: blog.csdn.net/Rhao999/article/details/105223995