- 正在自学c语言 今天练习写一段判断密码复杂度的代码 发现用逻辑运算符就随便输都会提示够复杂,用位逻辑运算符就没有这个问题,很奇怪 书上说这两个应该都能判断表达式才对
#include <stdio.h>
#include <string.h>
#include<math.h>
#include<ctype.h>
int Check(char* a);
int main()
{
char PassWord[50];
int Result;
printf("请输入密码(至少包含字母数字与符号)\n");
scanf("%s", &PassWord);
if (Check(PassWord)==1)
{
printf("有你的,够复杂\n");
}
else
{
printf("不行,在复杂点\n");
}
}
int Check(char* a)
{
int i,x=0,y=0,z=0;
for (i=0;i<50;i++ )
{
if (isalpha(a[i])!=0)
{
x = 1;
break;
}
else
{
break;
}
}
for (i = 0; i < 50; i++)
{
if (64<a[i]<91)
{
y = 1;
break;
}
else
{
break;
}
}
for (i = 0; i < 50; i++)
{
if (96<a[i]<123)
{
z = 1;
break;
}
else
{
break;
}
}
if ((x==1)&(y==1)&(z==1)) //!!注意,此处必须要用位逻辑与,原因不明
{
return 1;
}
else
{
return 0;
}
}