1. 程式人生 > >1081 檢查密碼(isalpha...)

1081 檢查密碼(isalpha...)

本題要求你幫助某網站的使用者註冊模組寫一個密碼合法性檢查的小功能。該網站要求使用者設定的密碼必須由不少於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.

分析:

       要檢查每一個字元是否為字母/數字/小數點,可以寫一個判斷函式,定義一個標誌位返回檢查資訊。那麼如何用一個變數反饋檢查結果呢?如果密碼的長度小於6,返回0;如果有非法字元,返回-1。那麼如何判斷密碼是隻有字母/只有數字/字母數字都有呢?這裡我讓flag增加,如果是字母則加1,如果是數字則加81(因為輸入是不超過80個字元的字串)。這樣缺數字,flag就小於81;如果缺字母,flag % 81的結果就是0。如此就可以用一個變數檢查多個資訊了。

#include<iostream>

using namespace std;

int Judge(string s){
	int flag = 0;
	if(s.length() < 6) return 0;
	for(int i = 0; i < s.length(); i++){
		if((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z')){
			flag++;
		}else if(s[i] >= '0' && s[i] <= '9'){
			flag += 81;
		}else if(s[i] != '.'){
			flag = -1;
			break;
		}
	}
	return flag;
}

int main(){
	int N;
	int flag = -1;
	string s;
	cin >> N;
	getchar();
	for(int i = 0; i < N; i++){
		getline(cin, s);
		flag = Judge(s);
		if(flag == -1) cout << "Your password is tai luan le." << endl;
		else if(flag == 0) cout << "Your password is tai duan le." << endl;
		else if(flag > 0 && flag < 81) cout << "Your password needs shu zi." <<endl;
		else if(flag % 81 == 0) cout << "Your password needs zi mu." << endl;
		else cout << "Your password is wan mei." << endl;
	}
}

       小姐姐的程式碼沒有定義函式,所以用了兩個標誌位來進行檢查。不過她用到了isalpha等,標頭檔案是<cctype>。

       isalpha 字母(包括大寫、小寫)islower(小寫字母)isupper(大寫字母)isalnum(字母大寫小寫+數字)isblank(space和\t)isspace(space、\t、\r、\n)。如果是則返回非零,否則返回零。

相關推薦

1081 檢查密碼isalpha...

本題要求你幫助某網站的使用者註冊模組寫一個密碼合法性檢查的小功能。該網站要求使用者設定的密碼必須由不少於6個字元組成,並且只能有英文字母、數字和小數點 .,還必須既有字母也有數字。 輸入格式: 輸入第一行給出一個正整數 N(≤ 100),隨後 N 行,每行給出一個使用者設

PAT 1081 檢查密碼15 程式碼+思路

1081 檢查密碼(15 分) 本題要求你幫助某網站的使用者註冊模組寫一個密碼合法性檢查的小功能。該網站要求使用者設定的密碼必須由不少於6個字元組成,並且只能有英文字母、數字和小數點 .,還必須既有字母也有數字。 輸入格式: 輸入第一行給出一個正整數 N(≤ 100),

PAT乙級 1081 檢查密碼 15 分

本題要求你幫助某網站的使用者註冊模組寫一個密碼合法性檢查的小功能。該網站要求使用者設定的密碼必須由不少於6個字元組成,並且只能有英文字母、數字和小數點 .,還必須既有字母也有數字。 輸入格式: 輸入第一行給出一個正整數 N(≤ 100),隨後 N 行,每行給出一個使用者設定的密碼,為

1081 檢查密碼 15 分

本題要求你幫助某網站的使用者註冊模組寫一個密碼合法性檢查的小功能。該網站要求使用者設定的密碼必須由不少於6個字元組成,並且只能有英文字母、數字和小數點 .,還必須既有字母也有數字。 #include<iostream> #include<string>

PAT乙級1081 檢查密碼15 分

1081 檢查密碼(15 分) 本題要求你幫助某網站的使用者註冊模組寫一個密碼合法性檢查的小功能。該網站要求使用者設定的密碼必須由不少於6個字元組成,並且只能有英文字母、數字和小數點 .,還必須既有字母也有數字。 輸入格式: 輸入第一行給出一個正整數 N(≤ 100),

PAT-乙-1081 1081 檢查密碼 15 分

程式碼 #include <iostream> using namespace std; int main() { int n; cin>>n; string s; getline(cin, s); for(int

1081 檢查密碼 15 分)

!= letter 選項 color line -- col include 實現 #include <iostream> #include <string> using namespace std; int main(){ in

PAT-乙級-1081. 檢查密碼 (15)問題程式碼求助已解決

1081. 檢查密碼 (15)時間限制400 ms記憶體限制65536 kB程式碼長度限制8000 B判題程式Standard作者CHEN, Yue本題要求你幫助某網站的使用者註冊模組寫一個密碼合法性檢查的小功能。該網站要求使用者設定的密碼必須由不少於6個字元組成,並且只能有

1081 檢查密碼 (15)15 分

1081 檢查密碼 (15)(15 分)本題要求你幫助某網站的使用者註冊模組寫一個密碼合法性檢查的小功能。該網站要求使用者設定的密碼必須由不少於6個字元組成,並且只能有英文字母、數字和小數點".",還必

Linux保護開機密碼3

linux 密碼經過二的過程我們知道,其他人在沒有能力進入系統的時候可以很有效的阻止,但是,萬一有人能夠進入系統裏面,並且查看了/etc/grub.cof呢,這該怎麽辦呢?這就涉及到了一個MD5加密,這種加密方式原則上是不可破解的,但是通過暴力破解,一些簡單的密碼很容易就被破解開來,所以,密碼設置的越復雜越有

Linux保護開機密碼2

linux 密碼只要對Linux熟悉一點的,都知道如何去修改密碼,但是,這樣很不安全,因為每個人都可以修改,如何去保護他們呢?有這樣一個辦法,就是在設置密碼的時候,在設置一個密碼去保護它,不就可以了?一:首先,進入超級用戶的目錄下使用命令:vi /etc/grub.conf進入該狀態之後,按下i鍵,進入編輯狀

破解密碼與反破解密碼centos6

passwd 一、一分鐘破解centos6密碼過程: ①進入內核選擇菜單時,按字母a進入。 ②在下面選中的行後添加s(大小寫都行)或者1。 ③進入單用戶界面,輸入命令passwd,修改密碼成功。 二、對密碼進行保護。 ①使用grub-md5-crypt成生md5密碼 ②打開/

851 AlvinZH的鬼畜密碼N

分析 created span iostream bst != code 判斷 思路 851 AlvinZH的鬼畜密碼 思路 難題。動態規劃。 先判斷字符串是否合理(可翻譯),然後分段處理,每一小段用動態規劃求出解法數。 dp[i]:字符串str[0~i]的解法數。通過判斷

使用vue-cli腳手架搭建項目,保存編譯時出現的代碼檢查錯誤ESLint

rip 正則 fin 外部 內置 global 同名 esp 復雜 一、問題 出現這麽寫錯誤是什麽原因呢?相信很多小白都會像我一樣,第一次接觸時有點二丈和尚摸不著頭腦。其實是在你用vue-cli腳手架構建項目時用了ESLint代碼檢查工具,如下圖 那麽什麽是ESL

git 生成公鑰 使用命令行無需輸入用戶名密碼windows

每次 con window 令行 找到 ima 輸密碼 技術 圖片 之前設置過一次,後來就忘記了,今天改完密碼之後發現命令行clone時驗證身份失敗,重新設置公鑰,記錄一下 1. 由於之前設置過公鑰,所以不用輸入用戶名密碼就可以執行git命令。現在密碼變了,取消公鑰,最簡單

遠程修改VMware ESXi服務器的密碼SSH

使用 sele pass -h selenium 分享 sel ssh連接 技術分享 1,用vSphere client登錄到服務器,將SSH啟用。 2,使用ssh連接工具(我用的是secureCRT)遠程登錄,輸入passwd,鍵入兩次新密碼,OK。 遠程修改

PAT 1081 檢查密碼

ets strlen 幫助 con ref 格式 its brush pro https://pintia.cn/problem-sets/994805260223102976/problems/994805261217153024 本題要求你幫助某網站的用戶註冊模塊寫

超級密碼BFS

fst list 開始 提示 密碼 fstream 歷史 pop esc Problem Description Ignatius花了一個星期的時間終於找到了傳說中的寶藏,寶藏被放在一個房間裏,房間的門用密碼鎖起來了,在門旁邊的墻上有一些關於密碼的提示信息: 密碼是一

Android實戰——第三方服務之Bmob後端雲的增刪改查、上傳文件、獲取文件、修改密碼

tid blank 生成 src 上傳圖片 放置 第三方 b數 net 第三方服務之Bmob後端雲的增刪改查、上傳文件、獲取文件、修改密碼(二) 事先說明:這裏的一切操作都是在集成了BmobSDK之後實現的,如果對Bmob還不了解的話,請關註我第一篇Bmob文章 步

mysql給root開啟遠程訪問權限,修改root密碼

ear ima update -- odex tool number data- ant 1.MySql-Server 出於安全方面考慮只允許本機(localhost, 127.0.0.1)來連接訪問. 這對於 Web-Server 與 MySql-Server 都在