pta c语言 密码是否符合要求(2021)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这道题是一道密码强度检测的问题,需要判断输入的密码是否符合要求。
具体要求如下:
1. 密码长度必须在 6 到 16 个字符之间。
2. 密码必须包含至少一个大写字母、一个小写字母和一个数字。
3. 密码不能包含特殊字符。
以下是一个 C 语言实现的示例代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX_LENGTH 16
#define MIN_LENGTH 6
int main() {
char password[MAX_LENGTH + 1];
int i, has_upper, has_lower, has_digit, has_special; printf("请输入密码:");
scanf("%s", password);
has_upper = has_lower = has_digit = has_special = 0; // 检查密码长度
if (strlen(password) < MIN_LENGTH || strlen(password) > MAX_LENGTH) {
printf("密码长度不符合要求\n");
return 0;
}
// 检查是否包含大写字母、小写字母和数字
for (i = 0; i < strlen(password); i++) { if (isupper(password[i])) {
has_upper = 1;
} else if (islower(password[i])) {
has_lower = 1;
} else if (isdigit(password[i])) {
has_digit = 1;
} else {
has_special = 1;
}
}
// 检查是否包含特殊字符
if (has_special) {
printf("密码不能包含特殊字符\n");
return 0;
}
// 如果符合要求,输出密码符合要求的提示信息 if (has_upper && has_lower && has_digit) {
printf("密码符合要求\n");
} else {
printf("密码不符合要求,必须包含至少一个大写字母、一个小写字母和一个数字\n");
}
return 0;
}
```。