题解 | #密码检查#
密码检查
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; }
#权限密码#