【C语言】密码验证的详细解读

最近我发现有些刚开始学习的程序员并不是能够很好的解读一篇程序,或者看到了不知道是做什么的,这里我就详细解释一篇密码验证的代码,让大家对程序有更深入的认知了解,程序中的知识点只涉及到分支循环,并不难,所以多看几遍理解起来并不会太难,当然了学习过一段时间的同学就没必要看了,程序的很多地方也只是为多写一点东西,并不是最优解

#define _CRT_SECURE_NO_WARNINGS    1	//无视SDL安全检查 忽略scanf函数带来的有可能存在的内存泄露的问题;#define 宏定义结尾不需要加;
#pragma warning(disable:6031)								//不打印6031这条警告

#include  <stdio.h> //stdio.h——包含printf这个函数的头文件-使用pr需要加上这个头文件 是stdio不是stduio
#include <string.h>	//使用与字符串相关操作的库函数时需要导入这个头文件

int Check_Key(char Key[], char KeyValue[], int Flag)
{
	for (int i = 0; i < 3; i++)
	{
		printf("请输入五位数的密码:\r\n");
		scanf("%s", Key);				//scanf函数是捕获键盘输入的函数以空白符-Tab键、空格、回车等为结尾,所以尽量避免"%d\n"、"%d %d"等写法的出现

		if (strlen(Key) != 5)
		{
			printf("密码输入不合法,还有%d次机会!\r\n", (2 - i));
			continue;							//continue 不执行之后的所有函数开始下一次循环
		}

		if (strcmp(Key, KeyValue) == 0)
		{
			Flag = 1;
			break;						//break 退出离得最近的循环
		}
		else
		{
			printf("密码输入错误,还有%d次机会!\r\n", (2 - i));
		}
	}
	return Flag;
}

int main()					//main函数是一个工程中编译器开始执行程序的地方,是工程中唯一的
{
	char Key[6] = { 0 };				//定义一个接收输入的密码的字符数组
	char KeyValue[] = "A5233";//用于存放正确密码的字符数组,字符串是" ",字符是' ',在编程中所有符号都是英文字符,并且在工程命名等也该避免出现中文,函数和变量等命名规则一般遵循驼峰命名法——小驼峰keyValue,大驼峰KeyValue;
	int Flag = 0;							//判断密码是否输入正确的标志位
	if (Check_Key(Key, KeyValue, Flag))//if也可以用来执行一个函数
	{
		printf("密码输入正确!\r\n");
	}
	else
	{
		printf("密码输入错误,已锁定!\r\n");
	}
	return 0;								//return 是跳到当前函数的最后一步,即下一步就是退出当前函数,return的值只能是一个表达式或者某个值
}

关于scanf的问题可以移步我的另一篇博客
链接: 关于scanf在VS2022中报错的解决办法

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Genius-Sue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值