牛牛在注册不同的网站时,总是会使用不同的密码来保证他的账号安全。
为了保证他的密码强度,牛牛使用他的“字符串筛选器”来测试密码的强度。
具体来说,他先将输入的字符串筛选分成四部分。
第一部分仅由小写英文字母组成
第二部分仅由大写英文字母组成
第三部分仅由0到9的数字组成
第四部分由其余特殊字符组成
这四部分要保留它们在原字符串中的相对顺序。
比如将"1q2w3E4R5{6}"这个字符串进行筛选后
四部分分别为:"qw"、"ER"、"123456"、"{}"。
然后只要某一部分不为空,牛牛就认为他的密码等级高1级。
密码等级最低为1级,最高4级。
例如"asdA@123"的密码等级为4,"20020101"的密码等级为1。
请帮助牛牛判断他注册账号时的密码等级,以及该密码做字符串筛选后的结果。
#include<bits/stdc++.h> using namespace std; char a[10005],num[10005],sm[10005],bg[10005],ts[10005]; int n=0,s=0,b=0,t=0,dengji=0; int main(){ scanf("%s",a); int len=strlen(a); for(int i=0;i<len;i++){ if(a[i]>='0'&&a[i]<='9'){ num[n]=a[i];//查找数字 n++; } else if(a[i]>='a'&&a[i]<='z'){ sm[s]=a[i];//查找小写字母 s++; } else if(a[i]>='A'&&a[i]<='Z'){ bg[b]=a[i];//查找大写字母 b++; } else{ ts[t]=a[i];//查找特殊符号 t++; } } if(s!=0)dengji++; if(b!=0)dengji++; if(t!=0)dengji++; if(n!=0)dengji++; //统计等级 printf("password level:%d\n",dengji); if(s!=0)printf("%s\n",sm); else printf("(Null)\n"); if(b!=0)printf("%s\n",bg); else printf("(Null)\n"); if(n!=0)printf("%s\n",num); else printf("(Null)\n"); if(t!=0)printf("%s\n",ts); else printf("(Null)\n"); return 0; }