PAT乙級1081 檢查密碼(C語言)

2021-09-16 21:29:44 字數 1902 閱讀 3687

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

#include

int main()

for(j=

0;j<

strlen

(arr[i]

);j++)if

(count1+count2+count3+count4!=

strlen

(arr[i]))

//4個之和不等於陣列長度,說明出現了其他字元

if(count4==0)

//count4為0,說明無數字

if(count1+count2==0)

//count1+count2為0,說明無字母

a[i]=1

;}for(i=

0;i<

n;i++

)printf

("\n");

}return0;

}

執行結果

個人體會

我的思路普通簡單,先判斷字串長度是否合理,需注意是否有空格、tab之類的,因此用gets輸入。然後遍歷檢測各位的型別,統計次數,分析情況,儲存輸出,最後遍歷列印輸出。

scanf()和gets()的區別:

scanf函式以空格、tab鍵或回車鍵作為輸入字串時的分隔符或結束符,所以空格、tab鍵不能出現在字串中;而利用gets函式輸入字串時沒有此限制,所以在檢查密碼合法性擔心會出現空格的非法字元,所以應該用gets函式。在接收完n後要getchar()讀取一下換行符才能用gets,否則換行符會被讀進gets中。

PAT乙級1081 檢查密碼

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 本題要求你幫助某 的使用者註冊模組寫乙個密碼合法性檢查的小功能。該 要求使用者設定的密碼必須由不少於6個字元組成,並且只能有英文本母 數字和小數點 還必須既有字母也有數字...

pat乙級 1081 檢查密碼

本題要求你幫助某 的使用者註冊模組寫乙個密碼合法性檢查的小功能。該 要求使用者設定的密碼必須由不少於6個字元組成,並且只能有英文本母 數字和小數點.還必須既有字母也有數字。輸入第一行給出乙個正整數 n 100 隨後 n 行,每行給出乙個使用者設定的密碼,為不超過 80 個字元的非空字串,以回車結束。...

1081 檢查密碼(PAT 乙級 C 實現)

輸入第一行給出乙個正整數 n 100 隨後 n 行,每行給出乙個使用者設定的密碼,為不超過 80 個字元的非空字串,以回車結束。對每個使用者的密碼,在一行中輸出系統反饋資訊,分以下5種 5 123s zheshi.wodepw 1234.5678 wanmei23333 pass word.6you...