PAT-B: 1081 Vérifier le mot de passe (15 points)



1. Sujet

Cette question vous oblige à aider le module d'enregistrement des utilisateurs d'un certain site Web à écrire une petite fonction pour vérifier la validité du mot de passe. Le site Web exige que le mot de passe défini par l'utilisateur ne contienne pas moins de 6 caractères et ne puisse contenir que des lettres anglaises, des chiffres et des décimales. Il doit également contenir à la fois des lettres et des chiffres.

Format d'entrée:

Entrez la première ligne pour donner un entier positif N (≤ 100), puis N lignes, chaque ligne donne un mot de passe défini par l'utilisateur, qui est une chaîne non vide de pas plus de 80 caractères, et se termine par un retour chariot .

Format de sortie:

Pour le mot de passe de chaque utilisateur, affichez les informations de retour système sur une ligne, réparties dans les 5 types suivants:

  1. Si le mot de passe est légal, affichez votre mot de passe est wan mei .;
  2. Si le mot de passe est trop court, qu'il soit légal ou non, il affichera Votre mot de passe est tai duan le .;
  3. Si la longueur du mot de passe est légale, mais qu'il y a des caractères non autorisés, la sortie Votre mot de passe est tai luan le .;
  4. Si la longueur du mot de passe est légale, mais qu'il n'y a que des lettres mais pas de chiffres, sortie Votre mot de passe nécessite shu zi .;
  5. Si la longueur du mot de passe est légale, mais qu'il n'y a que des chiffres et pas de lettres, affichez votre mot de passe nécessite zi mu ..

Échantillon d'entrée:

5
123S
zheshi.wodepw
1234.5678
WanMei23333
Passe * mot.6

Exemple de sortie:

Votre mot de passe est tai duan le.
Votre mot de passe nécessite shu zi.
Votre mot de passe nécessite zi mu.
Votre mot de passe est wan mei.
Votre mot de passe est tai luan le.


2. Idées et précautions

  1. Le point de test 2 doit lire des espaces et une chaîne peut être utilisée pour stocker des chaînes
  2. Dans #include "cctype", il y a la méthode "isdigit ()" pour déterminer s'il s'agit d'un nombre et la méthode "isalpha ()" pour déterminer s'il s'agit d'une lettre anglaise
  3. Déterminez d'abord si la longueur répond aux exigences, sinon, utilisez «continuer» pour entrer dans le cycle suivant.

La fonction définie pour juger de la longueur des caractères est la suivante:

bool judge_len(string str)
{
    
    
	if(str.length()<6) return false;
	else return true;
}


Trois, code AC

#include<iostream>
#include<cctype>
#include<cstring>
#include<cstdio>
using namespace std;

bool judge_len(string str);

int main()
{
    
    
	int N;
	string str;
	cin>>N;
	char a=getchar();                    //吸收回车键,没有这个键会把	5当成第一串字符读进去 
	for(int i=0;i<N;i++)
	{
    
    	
		int flag_al =0;					//字符统计
		int flag_dig=0;					//数字统计
		int flag_ill=0;					//非法字母 
		getline(cin,str);
		if(judge_len(str)==0)	
		{
    
    
			cout<<"Your password is tai duan le."<<endl;
			continue;
		}
		else 
		{
    
    
			for(int i=0;i<str.length();i++)
			{
    
    
				if(isalpha(str[i]))			
				{
    
    
					flag_al=1;
				}									
				else if (isdigit(str[i])) 		
				{
    
    
					flag_dig=1;
			 	}							
				else if(!(isalpha(str[i]))&& !( isdigit(str[i]) ) && (str[i]!='.') ) 
				{
    
    
					flag_ill=1;
				}
		    }
		    //判断
			if(flag_ill==1) 				 
			{
    
    		
					cout<<"Your password is tai luan le."<<endl;	
					continue;
			}
		    else if(flag_al==1&&flag_dig==0) 
			{
    
    
					cout<<"Your password needs shu zi."<<endl;		
					continue;
			}	    
		    else if(flag_al==0&&flag_dig==1) 
			{
    
    			
					cout<<"Your password needs zi mu."<<endl;			
					continue;	
			}
		    else 
		    {
    
    
		    	if(flag_al==1&&flag_dig==1&&flag_ill==0)
		    	{
    
      
		    		cout<<"Your password is wan mei."<<endl;
		    		continue;
				}
			}
		}
	}
}

bool judge_len(string str)
{
    
    
	if(str.length()<6) return false;
	else return true;
}

résultat:
Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/SKMIT/article/details/114006222
conseillé
Classement