(必须编写自定义函数实现下列功能:)假设允许采用以下四类字符作为密码: (1)大写英文字母(2)小写英文字母(3)数字0-9(4)特殊符号 @ - _ # ~ 密码要求: 1.长度超过8位

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

(1)大写英文字母
(2)小写英文字母
(3)数字0-9
(4)特殊符号 @ - _ # ~

密码要求:
1.长度超过8位;
2.包括大小写字母、数字、其它符号,密码组合中包含以上四种中至少三种字符

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

代码中的字母含义:

字母 含义
s 小写字母
b 大写字母
n 数字
o 其他字符

函数名随便取的,当时图快,英语不好😂

#include <stdio.h>
int isright(int *b,int *s,int *n,int *o,int flag,char c)//对每个类型的字符计数并且判断有没有出现非法字符(flag)
{
   
    flag = 1;//未出现非法字符
    
    
    if(c>='1' && c<='9')
    {
   
        (*n)++;
    }
    else if(c>='A' && c <= 'Z')
    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下实现功能C语言代码: ```c #include <stdio.h> #include <string.h> // 自定义函数,判断密码是否符合要求 int check_password(char password[]) { int length = strlen(password); int upper = 0, lower = 0, digit = 0, special = 0; // 遍历字符串,统计各种字符类型的个数 for (int i = 0; i < length; i++) { if (password[i] >= 'A' && password[i] <= 'Z') { upper++; } else if (password[i] >= 'a' && password[i] <= 'z') { lower++; } else if (password[i] >= '0' && password[i] <= '9') { digit++; } else if (password[i] == '@' || password[i] == '-' || password[i] == '_' || password[i] == '#' || password[i] == '~') { special++; } else { return 0; // 存在非法字符 } } if (length < 9) { if (upper + lower + digit + special < 3) { return 1; // 密码长度太短且密码中应包含大小写字母数字、其它符号四种中至少三种字符 } else { return 2; // 密码长度太短 } } else { if (upper > 0 && lower > 0 && digit > 0 && special > 0) { return 3; // 密码设置成功 } else { return 4; // 密码中应包含大小写字母数字、其它符号四种中至少三种字符 } } } int main() { char password[100]; printf("请输入密码:"); scanf("%s", password); int result = check_password(password); if (result == 1) { printf("密码长度太短且密码中应包含大小写字母数字、其它符号四种中至少三种字符\n"); } else if (result == 2) { printf("密码长度太短\n"); } else if (result == 3) { printf("密码设置成功\n"); } else if (result == 4) { printf("密码中应包含大小写字母数字、其它符号四种中至少三种字符\n"); } else { printf("密码中存在非法字符\n"); } return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值