题目描述
思路分析
改了n遍都不知道错在哪,想了半天错误的可能,原来是因为直接
cin >> password
会没法读入密码中的空格,呵呵。
代码部分
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
// ios::sync_with_stdio(0);
int N;
cin >> N; getchar();
string password;
for(int i = 0; i < N; i++)
{
int countnum = 0, flagnum = 1, flagletter = 1;
// 可读入输入的密码中的空格
getline(cin , password);
if(password.size() < 6)
printf("Your password is tai duan le.");
else
{
for(int j = 0; j < password.size(); j++)
{
if(password[j] >= '0' && password[j] <= '9' {
//存在数字
flagnum = 0;
countnum ++;
}
if( (password[j] >= 'A' && password[j] <= 'Z') || (password[j] >= 'a' && password[j] <= 'z') )
{
//存在字母
flagletter = 0;
countnum ++;
}
if( password[j] == '.')
countnum ++;
}
if(countnum != password.size())
printf("Your password is tai luan le.");
else if(flagnum == 1)
//没有数字
printf("Your password needs shu zi.");
else if(flagletter == 1)
//没有字母
printf("Your password needs zi mu.");
else
printf("Your password is wan mei.");
}
printf("\n");
}
return 0;
}