杭电ACM2043

#include<stdio.h>
#include<string.h>

char zifu[7]={'~','!','@','#','$','%','^'};

bool panduan(char *);
int main(void)
{
int n;
char a[10][50];
scanf("%d",&n);
getchar();
for(int i=0;i<n;i++)
gets(a[i]);
for(int i=0;i<n;i++)
{
if(panduan(a[i]))
printf("安全密码 ");
else
printf("不安全 ");
}

return 0;

}

bool panduan(char *p)
{
int flag[4]={0};
int sum;
int len=strlen(p);
if(len>=8&&len<=16)//第一个条件
{for(int i=0;i<len;i++)
{char s=*(p+i);
if(s<='Z'&&s>='A')
flag[0]=1;
if(s<='z'&&s>='a')
flag[1]=1;
if(s<='9'&&s>='0')
flag[2]=1;
for(int j=0;j<7;j++)
{
if(s==zifu[j])
{
flag[3]=1;
break;
}
}
}
}

sum=flag[0]+flag[1]+flag[2]+flag[3];
if(sum>=3)
return true;
else
return false;
}

原文地址:https://www.cnblogs.com/aloney/p/4517430.html