c语言破译密码字符数组,C语言学习之控制台密码输入【带回显】

[C] 纯文本查看 复制代码/*

2020年9月25日21:50:28

*/

#include

#include

#include

/*

包含头文件

stdio.h

conio.h

windows.h

密码输入:

英文、数字

len_pd 密码长度 (字符数组的长度)

str字符数组指针

例子:

char password[17];

Input_pd(17, password);

输入一个长度最大为16个字符的密码 其中最后空间用于保存\0

超过最大长度后自动退出

*/

void Input_pd(int len_pd, char* str);

int main(void)

{

char password[17];

Input_pd(17, password);

printf("\n你输入的密码为:%s\n", password);

return 0;

}

void Input_pd(int len_pd, char* str)

{

char* password;

int n_input_pd = 0;

len_pd -= 1;

password = str;

while (n_input_pd < len_pd)

{

password[n_input_pd] = _getch();

/*

自行添加

if(输入验证)

{

return -1;

}

*/

if (password[n_input_pd] == '\r')

{

break;

}

//删除功能 循环判断是否 连续删除

while (password[n_input_pd] == '\b')

{

putchar('\b');

putchar(' ');

putchar('\b');

if (n_input_pd) //判断是否减到0 如果是0 则不继续减少下标

--n_input_pd;

password[n_input_pd] = _getch(); //获取下一次的输入

/*

自行添加

if(输入验证)

{

return -1;

}

*/

if (password[n_input_pd] == '\r')

{

goto end;

}

}

//回显

putchar(password[n_input_pd]);

//退格 打印*

putchar('\b');

Sleep(150);

putchar('*');

++n_input_pd;

}

end:

password[n_input_pd] = '\0'; //添加结束标记

return;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值