1212: 该死的密码 [字符串]

2019-04-13 15:58发布

题目描述
终于要放寒假了,王炸和大家一样在模电课上拿起自己的手机准备抢票。刚打开12306,突然蹦出来一个提示:“您的密码可能有泄露的风险,请先修改密码!” 王炸心中一惊:“Are you kidding??!!”赶紧找到改密码的页面,才发现原来改个密码还要验证个人信息,经过一系列娴熟的操作后,终于该输入新密码了,“买票要紧,随便先设置个!”王炸心里想着,中里一串123456789就输进去了。 “对不起,您的密码过于简单,请重新修改!”,紧接着又出来信息验证的页面。…………QAQ…………… ………… “对不起,您的密码不合法,请重新修改!”…………QAQ…………… ………… 二十分钟过去了,王炸终于用 QAQ543…!!233 登录进去了,然而发现票已被抢完。 (╯‵□′)╯︵┻━┻ 回个毛线的家,在学校附近网吧做ACM!! 为了避免以后再出现这样的情况,王炸让你帮忙写个程序,来检验密码是否合法,以及密码的强度。 输入
第一行输入一个整数T(1≤T≤10) 接下来T行,每行输入一个字符串str表示密码,其中 1 ≤ strlen(str)≤ 100 (strlen表示计算字符串长度) 输出
合法的密码只含有:大写字母(AZ)、小写字母(az)、数字(0~9)、字符(.!@%四种)。 若密码长度在 [8,24] 之间则认为密码是合法的,如果密码不合法则输出ERROR。 如果密码合法,且含有上述四种的三种及以上,则输出GOOD PASSWORD 否则输出BAD PASSWORD 样例输入
4
1234567
12345678
QAQ…!!2333
Q1.!
样例输出
ERROR
BAD PASSWORD
GOOD PASSWORD
ERROR #include #include #include using namespace std; main() { int t; scanf("%d",&t); getchar(); while(t--) { char s[110]; gets(s); int leng=strlen(s); int flag=0; if(leng>=8&&leng<=24) { int flagg=0; for(int i=0;i='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')||(s[i]>='0'&&s[i]<='9')||(s[i]=='.'||s[i]=='!'||s[i]=='@'||s[i]=='%')) { continue; } else { flagg=1; break; } } if(flagg==0) { for(int i=0;i='A'&&s[i]<='Z') { flag++; break; } } for(int i=0;i='a'&&s[i]<='z') { flag++; break; } } for(int i=0;i='0'&&s[i]<='9') { flag++; break; } } for(int i=0;i=3) { printf("GOOD PASSWORD "); } else { printf("BAD PASSWORD "); } } else { printf("ERROR "); } } else { printf("ERROR "); } } }