栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言——判断密码复杂程度

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言——判断密码复杂程度

题目:编写一个函数,传入密码,判断密码复杂程度(判断密码是否包含大写、小写、数字)

解题思路:

我们设定若包含大写、小写、数字其中一类为简单,包含两类为中等,三类为复杂,暂时不考虑其他字符的出现。

我们预先设定密码为:Maobing520

① 主函数中定义一个字符串str存放密码。 

② 定义函数 int key (char *p) ,其中 *p 所传入的参数是密码(字符串),返回值可以设为int型,复杂返回3,中等返回2,简单返回1。

③ 主函数中根据函数返回值分别打印不同的结果语句。

④ 我们可以增设一个提示,如果密码过于简单,为了防止被盗,必须提醒用户改一个稍微复杂的新密码。此处可以用到do...while循环语句直到密码不再简单为止。

运行代码:

#include 
#include 
int key(char *p)  
{
	int i=0,j=0,k=0,count=0; //i,j,k分别对应是否有小写/大写/数字
	while(*p)
    { 
	   if(*p>='a'&&*p<='z')      i=1;  //说明存在小写
	   else if(*p>='A'&&*p<='Z') j=1;  //说明存在大写
	   else if(*p>='0'&&*p<='9') k=1;  //说明存在数字
	   p++;
	}
	count=i+j+k;   //根据加成 得知 1——简单 2——中等 3——复杂
	return count;
}

int main(){
	char str[81];
	printf("please enter password(A-Z or a-z or 0-9):n");
	gets(str);
	int a;      //函数返回值赋给a
	a=key(str);
	if (a==1)   //此处判断为密码简单的情况,需重新输入稍微复杂的密码 
    {
	  do{
		 printf("neasy!!please enter new password:");
		 gets(str);
	     a=key(str);
	     if(a==2) printf("nmiddle");
	     if(a==3) printf("nhard");
	    }while(a==1);      //此处使用do...while语句,作用是若密码还是简单则继续重新输入密码
	}

	else if(a==2) printf("nmiddle");
	else printf("nhard");

	return 0;
}

运行结果:

  以上为密码过于简单所触发的结果。

 以上为输入预先设定的密码所得到的结果。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/929115.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号