赞
踩
标题 密码强度 类别 字符串处理 时间限制 1S 内存限制 256Kb 问题描述 每个人都有很多密码,你知道你的密码强度吗?假定密码由大写字母、小写字母、数字和非字母数字的符号这四类字符构成,密码强度计算规则如下: 1. 基础分:空密码(密码长度为零)0分,非空密码1分 2. 加分项1:密码长度超过8位,+1分 3. 加分项2:密码包含两类不同字符+1分,包含三类不同字符+2分,包含四类不同字符+3分 按照此规则计算的密码强度为0~5。请你设计一个程序计算给出的密码的强度。 输入说明 输入为一个密码字符串,字符串长度不超过50个字符。 输出说明 输出一个整数表示该密码的强度。 输入样例 输入样例1 abcd 输入样例2 ab123 输出样例 样例1输出: 1 样例2输出 2
- #include<stdio.h>
- #include<ctype.h>//包含判断字符类型函数的头文件
- #include<string.h>
- int main()
- {
- char a[50]={'\0'};int score=0,albig=0,
- allow=0,num=0,other=0,s;
- gets(a);
- if(strlen(a)==0){//strlen可计算字符串长度
- score=0;
- }
- else{//只要密码不空就加一分
- score++;
- }
- if(strlen(a)>8){//大于8再加一分
- score++;
- }
- for(int i=0;a[i]!='\0';i++){
- if(isdigit(a[i])){//isdigit是判断是否为数字字符函数
- num=1;
- }
- else if(isupper(a[i])){//isupper判断是否大写字母
- albig=1;
- }
- else if(islower(a[i])){//islowr判断是否小写字母
- allow=1;
- }
- else{//其他字符
- other=1;
- }
- }
- s=num+albig+allow+other;//s表示出现字符类型总量
- if(s==2)score+=1;
- if(s==3)score+=2;
- if(s==4)score+=3;
- printf("%d",score);
- return 0;
- }
我是来自XDU的菜鸡,欢迎交流学习!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。