某网站规定注册账号时密码必须达到一定强度才可以。他们规定密码长度至少6位,数字、大写字母、小写字母、符号(~!@#$%^&*()[]}{|<>?/.,:"';)这四类中至少包含三类才合格。现在请你写一段程序来判断一个密码是否合格。
输入格式:
第一行为一个整数n(0<n<10),代表测试用例组数,
后边是n行测试用例,每行为一个长度不超过30的字符串。
输出格式:
共n行,与输入的n行测试用例相对应,如果密码合格则输出yes,否则输出no。
#include<stdio.h>
#include<string.h>
int main()
{
int n;
char arr[30];
int a=0,b=0,d=0,e=0,count=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s",arr);
int f=strlen(arr);
for(int j=0;j<f;j++){
//TODO
while(arr[j]!='\n')//因为字符串我已经有了,所以可以用这种方法判断什么时候该停下
{
count++;
if(arr[j]>=48&&arr[j]<=57)
{
a=1;
//TODO
}
if(arr[j]>=65&&arr[j]<=90)
{
b=1;
//TODO
}
if(arr[j]>=79&&arr[j]<=122)
{
d=1;
//TODO
}
if((arr[j]>=33&&arr[j]<=42)||arr[j]==44||arr[j]==46||arr[j]==47||arr[j]==58||arr[j]==59||arr[j]==60||arr[j]==62||arr[j]==63||arr[j]==64||arr[j]==91||arr[j]==93||arr[j]==94||arr[j]==123||arr[j]==124||arr[j]==125||arr[j]==126)
{
e=1;
//TODO
}
if(count<6)
{
printf("no");
//TODO
}
else if((a+b+d+e)>=3)
{
printf("yes");
}
else
printf("no");
}
//TODO
}
//TODO
}
return 0;
}