2704 - 密码检测
有时候你可能为了注册山东建筑大学的OJ经常因为密码不符合要求,而多次修改密码。那么现在我来告诉你们山建OJ密码的要求:
*密码的长度至少是五个符号
*密码至少含有一个大写的英文字母
*密码至少含有一个小写的英文字母
*密码至少包含一个数字
如果有其中一条不符合要求,那么就是不合法的密码。现在给你一些密码,让你判断是否合法。
Input
第一行是一个整数T,包含T组数据。接下来每行是一串密码,长度小于100.
Output
如果是密码符合要求,则输出Correct,否则输出 Too weak。
Examples
Input
3 Abacaba X123456 CONTEST_is_STARTED!!11
Output
Too weak Too weak Correct
Solution C
#include<stdio.h> #include<ctype.h> #include<string.h> int main(void) { int n,i,ok,d,c; char a[1000]; scanf("%d",&n); while(n--) { ok=0; scanf("%s",a); d=strlen(a); if(d<5) ok=-1; for(i=0;i<d;i++) { c=isdigit(a[i]); if(c) { ok++; break; } } for(i=0;i<d;i++) { c=islower(a[i]); if(c) { ok++; break; } } for(i=0;i<d;i++) { c=isupper(a[i]); if(c) { ok++; break; } } if(ok==3) printf("Correct\n"); else printf("Too weak\n"); } }
Solution C++
#include<stdio.h> #include<string.h> char s[107]; int main() { //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int t; scanf("%d",&t); while(t--) { scanf("%s",s); int len=strlen(s); bool large=false,small=false,digit=false; if(len<5)printf("Too weak\n"); else { for(int i=0;i<len;i++) { if(s[i]>='a'&&s[i]<='z')small=true; if(s[i]>='A'&&s[i]<='Z')large=true; if(s[i]>='0'&&s[i]<='9')digit=true; } if(small&&large&&digit)printf("Correct\n"); else printf("Too weak\n"); } } return 0; }