安全密码(字符串)
2023-12-17 18:54:39
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
bool is_secure_password(const char* password);
int main()
{
int M;
char password[51];
// 读取输入中的密码数量 M
scanf("%d", &M);
// 处理每个密码
for (int i = 0; i < M; ++i)
{
// 读取密码
scanf("%s", password);
// 检查密码是否安全并输出结果
if (is_secure_password(password))
{
printf("YES\n");
}
else
{
printf("NO\n");
}
}
return 0;
}
// 函数定义
bool is_secure_password(const char* password)
{
// 检查密码长度
int len = strlen(password);
if (8 <= len && len <= 16)
{
// 检查密码字符类别
bool categories[4] = { false }; // 大写字母、小写字母、数字、特殊符号
for (int i = 0; i < len; ++i) {
char current = password[i];
if ('A' <= current && current <= 'Z')
{
categories[0] = true;
}
else if ('a' <= current && current <= 'z')
{
categories[1] = true;
}
else if ('0' <= current && current <= '9')
{
categories[2] = true;
}
else if (strchr("~!@#$%^&", current) != NULL)
{
categories[3] = true;
}
}
// 判断密码是否包含至少三组字符类别
if (categories[0] + categories[1] + categories[2] + categories[3] >= 3)
{
return true;
}
}
return false;
}
文章来源:https://blog.csdn.net/2303_80475208/article/details/135047535
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!