描述
网站注册需要有用户名和密码,编写程序以检查用户输入密码的有效性。合规的密码应满足以下要求:
-
只能由 a∼z 之间 26 个小写字母、A∼Z 之间 26 个大写字母、0∼9 之间 10 个数字以及 !@#$ 四个特殊字符构成。
-
密码最短长度 : 6 个字符,密码最大长度 : 12 个字符。
-
大写字母,小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个。
输入描述
输入一行不含空格的字符串。约定长度不超过 100。该字符串被英文逗号分隔为多段,作为多组被检测密码。
输出描述
输出若干行,每行输出一组合规的密码。输出顺序以输入先后为序,即先输入则先输出。
用例输入 1
seHJ12!@,sjdkffH$123,sdf!@&12HDHa!,123&^YUhg@!
用例输出 1
seHJ12!@ sjdkffH$123
#include<iostream>
using namespace std;
int n;
string t[100];
int main ()
{
string s;
cin>>s;
for(int i=0;i<s.size();i++)
{
if(s[i]!=',')
{
t[n]+=s[i];
}
else
{
n++;
}
}
for(int i=0;i<=n;i++)
{
string m=t[i];
int l=m.size();
int a=0,b=0,c=0,d=0,e=0;
if(l<6 || l>12)
{
continue;
}
for(int j=0;j<l;j++)
{
if(islower(m[j]))
{
a++;
}
else if(isupper(m[j]))
{
b++;
}
else if(isdigit(m[j]))
{
c++;
}
else if(m[j]=='!' || m[j]=='@' || m[j]=='$'|| m[j]=='#')
{
d++;
}
else
{
e++;
}
}
if(e!=0 || d==0 || a==0 && b==0 || a==0 && c==0 || b==0 && c==0)
{
continue;
}
else
{
cout<<m<<endl;
}
}
return 0;
}