要求:主函数输入密码,调用函数判断用户所设密码的有效性,密码要求:长度大于6,有字母、数字,及特殊字符,在主函数中输出判断结果,符合要求则输出"pass",否则输出"fail"
【样例输入】
test123*
【样例输出】
pass
主函数:
#include<stdio.h>
int pws(char s[]);
int main() {
char str[50];
int n;
gets(str);
n = pws(str);
if (n==1) {
printf("pass");
}
else {
printf("fail");
}
return 0;
}
int pws(char s[ ]);
int pws(char s[]) {
int flag1 = 0, flag2 = 0, flag3 = 0, flag = 0;
for (int i = 0; s[i] != '\0'; i++) {
if (s[i] >= '0' && s[i] <= '9') {
flag1++; //判断是否含有数字
}
else if((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z')) {
flag2++; //判断是否含有字母
}
else if((s[i] >= '!' && s[i] <= '/') || (s[i] >= ':' && s[i] <= '@')) {
flag3++; //判断是否含有特殊字符
}
else if((s[i] >= '[' && s[i] <= '`') || (s[i] >= '{' && s[i] <= '~')) {
flag3++; //判断是否含有特殊字符
}
}
if (flag1 && flag2 && flag3) {
flag = 1;
}
else {
flag = 0;
}
return (flag);
}
//题中主函数未给出<string.h>库,因此不使用函数strlen(s)