c语言设计密码检测程序?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言设计密码检测程序?相关的知识,希望对你有一定的参考价值。
为账号注册模块设计一个密码检测程序,密码需要满足以下条件。
1. 密码长度6~8个字符
2. 两次输入的密码必须一致
3. 必须包含大写字母、小写字母和数字符号,也只能包含这三种符号。
程序运行时,提示用户输入密码,如果不符合以上任一要求,显示相关错误并要求用户重新输入。
#define UC (1U<<1) // upper case
#define LC (1U<<2) // lower case
#define NUM (1U<<3) // 0-9
#define ALL (UC|LC|NUM)
int check(const char pass1[], const char pass2[])
const char *p = &pass1[0];
unsigned int flag = 0;
if (strlen(pass1) < 6 || strlen(pass1) > 8)
printf("password length is 6 to 8.\n");
return 1;
if (strcmp(pass1, pass2))
printf("the tow passwords are diffrence.\n");
return 2;
while (*p)
if (*p >= 'a' && *p <= 'z') flag |= LC;
else if (*p >= 'A' && *p <= 'Z') flag |= UC;
else if (*p >= '0' && *p <= '9') flag |= NUM;
else
printf("in valid charactor: %c.\n", *p);
return 3;
++p;
if (flag == ALL) return 0;
if ((flag & UC) == 0)
printf("lack of uppercase.\n");
if ((flag & LC) == 0)
printf("lack of lowercase.\n");
if ((flag & NUM) == 0)
printf("lack of number.\n");
return -1;
int main(int argc, char *argv[])
char pass1[100];
char pass2[100];
do
printf("input password:");
scanf("%s", pass1);
printf("repeat password:");
scanf("%s", pass2);
while (check(pass1, pass2) != 0);
return 0;
追问
为什么输入Ab1234然后就直接完了呀
追答密码正确时忘记输出提示信息了,修改一下main函数,修改如下(其实就是增加了一然 printf("password is ok: %s\n", pass1);):
int main(int argc, char *argv[])
char pass1[100];
char pass2[100];
do
printf("input password:");
scanf("%s", pass1);
printf("repeat password:");
scanf("%s", pass2);
while (check(pass1, pass2) != 0);
printf("password is ok: %s\n", pass1);
return 0;
基于51单片机LCD1602矩阵键盘电子密码锁proteus仿真设计
程序源码参考设计 +QQ214268650
本设计
基于51单片机LCD1602矩阵键盘密码锁proteus仿真设计
操作视频:
https://www.bilibili.com/video/BV1Xh411Y7ia
仿真图proteus 7.8/protues 8.6
程序编译器:keil 4/keil 5
编程语言:C语言
编号C10531_2
一、主要功能:
1.按键设置6位密码,输入密码若密码正确,则锁打开。显示open!
2.密码可以自己修改(6位密码),必须是锁打开时才能改密。为防止误操作,修改密码得输入两次。
3.若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。
4.24C02有复位、掉电保存密码功能。
5.液晶屏亮度会随光线自动调整。
二、按键说明:
排列方式:1 2 3 A
4 5 6 B
7 8 9 C
- 0 # D
ABC无定义、 *号键为取消当前操作、#号键为确认、D键为修改密码
三、其他说明:
1、首次使用时输入:131420,对密码进行初始化,当显示:initpassword,证明密码初始化完成,此时的密码为:000000。然后可以改密了。(如密码忘记就再输入131420初始化,然后密码就是000000了,不要告诉别人哦~~~)
2、按下 * 键或复位键,可以关锁并退出。
3、当输入密码错误后,报警并锁定键盘3秒钟。
4、修改密码:在开锁状态下,再次输入正确的密码并按下 # 键,此时听到两声提示,输入新的六位密码并按 D 键,再重复输入一次新密码并按 D ,会听到两声提示音,表示重设密码成功,内部保存新密码并存储。如两次输入的新密码不一样,则重设密码失败。
仿真图(提供源文件):
程序(提供源文件源码):
资料清单:
以上是关于c语言设计密码检测程序?的主要内容,如果未能解决你的问题,请参考以下文章