输入一个数n,接下来有n(n≤100)行,每行一个字符串,表示一个密码,输入保证字符串中只出现大写字母,小写字母和数字,字符串长度不超过100。
密码要求:
1. 密码只能由大写字母,小写字母,数字构成;
2. 密码不能以数字开头;
3. 密码中至少出现大写字母,小写字母和数字这三种字符类型中的两种;
4. 密码长度至少为8
#include <stdio.h>
#include <string.h>
int main()
{
int n = 0;
scanf("%d", &n);
char arr[100] = { 0 };
for (int i = 0; i < n; i++)
{
scanf("%s", &arr);
int num = 0; //记录密码中数字个数
int low = 0; //记录密码中小写字母个数
int upp = 0; //记录密码中大写字母个数
int len = strlen(arr);
for (int j = 0; j < len; j++)
{
if (48 <= arr[j] && arr[j] <= 57) //对照ASCII码表,0-9
num++;
if (97 <= arr[j] && arr[j] <= 122) //a-z
low++;
if (65 <= arr[j] && arr[j] <= 90) //A-Z
upp++;
}
if (((65 <= arr[0] && arr[0] <= 90) || (97 <= arr[0] && arr[0] <= 122)) && (len >= 8) && ((upp != 0 && low != 0) || (upp != 0 && num != 0) || (low != 0 && num != 0)))
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
该代码段是一个C程序,用于验证输入的密码是否符合特定的安全标准。它检查密码是否由大写字母、小写字母和数字组成,不以数字开头,包含至少两种字符类型,并且长度至少为8个字符。程序通过ASCII码来识别字符类型,并对每个密码进行判断,输出YES或NO表示是否满足条件。
3227

被折叠的 条评论
为什么被折叠?



