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