四类字符作密码

该博客讨论了一个密码验证程序,该程序确保密码至少包含大写和小写字母、数字以及特殊符号中的三种,并且长度超过8位。文章通过示例说明了不同错误情况,如密码长度不足、非法字符以及字符种类不足的情况,并提供了输入提示和相应的错误信息反馈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(必须编写自定义函数实现下列功能:)假设允许采用以下四类字符作为密码

题目

(必须编写自定义函数实现下列功能:)假设允许采用以下四类字符作为密码:
(1)大写英文字母,(2)小写英文字母,(3)数字0-9,(4)特殊符号 @ - _ # ~
密码要求:
1.长度超过8位;
2.包括大小写字母、数字、其它符号,密码组合中包含以上四种中至少三种字符;

程序运行示例1:
abc123
密码长度太短且密码中应包含大小写字母、数字、其它符号四种中至少三种字符

程序运行示例2:
Asd123%
密码中存在非法字符
密码长度太短

程序运行示例3:
abc12^*
密码中存在非法字符
密码长度太短且密码中应包含大小写字母、数字、其它符号四种中至少三种字符

输入提示:无
输出信息提示:
如果密码符合上述要求,则输出:“密码设置成功\n”,
不符合要求则提示:“密码长度太短且密码中应包含大小写字母、数字、其它符号四种中至少三种字符\n” 或 “密码长度太短\n” 或者"密码中应包含大小写字母、数字、其它符号四种中至少三种字符\n" 或"密码中存在非法字符\n" (提示:可能输出多个提示.)

代码

#include <stdio.h>
#include <string.h>
void f(char str[])
{
    int flag1=0,flag2=0,flag3=0,flag4=0,flag5=0,j;
    for( j=0; str[j]!='\0'; j++)
    {
        if(str[j]>='A'&&str[j]<='Z')
            flag1=1;
        else if(str[j]>='a'&&str[j]<='z')
            flag2=1;
        else if(str[j]>='0'&&str[j]<='9')
            flag3=1;
        else if(str[j]=='@'||str[j]=='-'||str[j]=='_'||str[j]=='#'||str[j]=='~')
            flag4=1;
        else flag5=1;
    }
    if(flag1+flag2+flag3+flag4>2 && j>8&&flag5==0)
    {

        printf("密码设置成功\n");
    }
    else
    {
        if(flag5!=0)
            printf("密码中存在非法字符\n");
        if(j<=8&&flag1+flag2+flag3+flag4<=2)
            printf("密码长度太短且密码中应包含大小写字母、数字、其它符号四种中至少三种字符\n");
        else if(j<=8)
            printf("密码长度太短\n");
        else if(flag1+flag2+flag3+flag4<=2)
            printf("密码中应包含大小写字母、数字、其它符号四种中至少三种字符\n");
    }
}
int main()
{
    char str[20];
    gets(str);
    f(str);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值