社区讨论
求
灌水区参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @m00j57yd
- 此快照首次捕获于
- 2024/08/19 13:02 2 年前
- 此快照最后确认于
- 2024/08/19 15:35 2 年前
B3843
题目描述
网站注册需要有用户名和密码,编写程序以检查用户输入密码的有效性。合规的密码应满足以下要求 :。
CPP只能由 a∼za∼z 之间 2626 个小写字母、A∼ZA∼Z 之间 2626 个大写字母、0∼90∼9 之间 1010 个数字以及 !@#$ 四个特殊字符构成。
密码最短长度 :6:6 个字符,密码最大长度 :12:12 个字符。
大写字母,小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个。
输入格式
输入一行不含空格的字符串。约定长度不超过 100100。该字符串被英文逗号分隔为多段,作为多组被检测密码。
输出格式
输出若干行,每行输出一组合规的密码。输出顺序以输入先后为序,即先输入则先输出。
输入输出样例:
输入 #1
seHJ12!@,sjdkffH$123,sdf!@&12HDHa!,123&^YUhg@!
输出 #1
seHJ12!@
sjdkffH$123
CPP#include<bits/stdc++.h>
using namespace std;
bool crrc(char a){
if(a == '!' || a == '@' || a == '#' || a == '$' || a >= 'A' && a <= 'Z' || a >= 'a' && a <='z' || a >= '0' && a <= '9'){
return true;
}else{
return false;
}
}
int main(){
char a[110],b[110];
cin>>a;
int len = strlen(a);
int nlen=0;
int sum=0;
for(int i=0;i<len;++i){
if(a[i] == ',' || i + 1 == len){
for(int i=0;i<nlen;++i){
if(!crrc(b[i])){
sum++;
}
}
if(sum == 0){
for(int i=0;i<nlen;++i){
cout<<b[i];
}
cout<<endl;
}
for(int i=0;i<nlen;++i) b[i]=0;
nlen=0;
sum=0;
continue;
}else{
b[i] = a[i];
nlen++;
}
}
return 0;
}
雀食可以判断,但只判断了第一串就不判断了,往后不输出的原因是:往后的sum都会莫名其妙的不为0
求大佬们帮忙看看
谢谢!!!
回复
共 0 条回复,欢迎继续交流。
正在加载回复...