1081 檢查密碼 (15分)C語言


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

思路

  • 題目難度不大,逐個判斷即可,
  • isdigit(int c) 檢查所傳的字符是否是十進制數字字符。
  • isalpha(int c) 檢查所傳的字符是否是字母。
#include <stdio.h>
int main(){
	int n,i,j,shu,zimu,xiao;
	scanf("%d",&n);
	char arr;
	getchar();
	for(i=0;i<n;i++){
		shu=zimu=xiao=0;
		for(j=0;(arr=getchar()) != '\n';j++){
			if(isdigit(arr))	shu++;//isdigit(int c) 檢查所傳的字符是否是十進制數字字符。
			else if(isalpha(arr))	zimu++;// isalpha(int c) 檢查所傳的字符是否是字母。
			else if(arr != '.')	xiao++; 
		}		
		if(j<6)	printf("Your password is tai duan le.\n");
		else if(xiao)	printf("Your password is tai luan le.\n");
		else if(zimu && !shu)	printf("Your password needs shu zi.\n");
		else if(shu && !zimu)	printf("Your password needs zi mu.\n");
		else	printf("Your password is wan mei.\n");
	}
	return 0;
} 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM