题解 | #密码检查#

密码检查

https://www.nowcoder.com/practice/f2fbd8f61c564ca0b5feaa63ab42dae5

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdio.h>
#include<string.h>
#include<assert.h>
#include<math.h>
#include<ctype.h>
int judge_whether_the_password_is_legal(const char* p) {
	assert(p);//断言
	int len = strlen(p);
	if (len < 8) {//判断长度
		return 0;
	}
	if (isdigit(*p)) {//判断首位首字符是否是数字
		return 0;
	}
	int capital = 0;//大写字母标识
	int lowercaseLetters = 0;//小写字母标识
	int numbers = 0;//数字标识
	for (int i = 0;i < len;i++) {
		if (!isalnum(*p)) {//判断是否是数字或字母
			return 0;
		}
		if (isupper(*p)) {//判断大写字母
			capital=1;
		}
		else if (islower(*p)) {//判断小写字母
			lowercaseLetters=1;
		}
		else if (isdigit(*p)) {//判断数字
			numbers=1;
		}
		if ((capital + lowercaseLetters + numbers) >= 2) {//有两种类型
			return 1;
		}
		p++;
	}
    return 0;
}
int main() {
    int n=0;
    scanf("%d",&n);
    while(n--){
          char p[100];
          scanf("%s",p);
          int ret=judge_whether_the_password_is_legal(p);
          if (ret) {
            printf("YES\n");
          }
          else {
            printf("NO\n");
          }
    }
	return 0;

}

#权限密码#
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务