当前位置:首页 » 编程语言 » c语言密码的设置与输入对比
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言密码的设置与输入对比

发布时间: 2022-04-22 21:16:17

① VC c语言怎么让输入密码变成*****在用if进行比较

改成这样就可以了:
void main()
{ int i;
char password[11]={'\0'};
char c[11]="1234567891";
for(i=0;i<10;i++)
{
password[i]=getch();
printf("*");

}
if(strcmp(c,password)==0)
printf("正确\n");
else
printf("错误\n");
}

因为你使用的是strcmp函数,比较的是两个字符串,而你的数组没有给字符串留出保存终止符号'\0'的机会也没有保存终止符号'\0'的空间,所以比较时,strcmp不知道字符串在哪里终止.

② C语言 怎么输入字符串比较问题

#include <stdio.h>
int main()
{char a[10],b[10],c[]="密码正确",d[]="密码错误"; int i=0;
printf("请设定10位字符以内密码");
scanf("%s",a);
printf("密码设置成功,请输入密码解锁");
scanf("%s",b);
while(i<4)
if(strcmp(a,b)=1) break;
else i++;
printf("%s",i==3?d:c);
}

③ C语言用户登录系统账户密码比对

#include<stdio.h>
#include<string.h>

typedefstructaccount{
charname[32];
characc[16];
charpsw[16];
}Acc;

//data是结构体数组,filename是文件绝对地址,n保存读入的结构体数量
voidGetDataFromTxt(Acc*data,constchar*filename,int*n)
{
FILE*fp=fopen(filename,"r");
if(NULL==fp){
printf("Openfilefailedornothisfile! ");
return;
}

inti=0;
while(!feof(fp))
{
fscanf(fp,"%s%s%s",data[i].name,data[i].acc,data[i].psw);
i++;
}
*n=i;
}

intmain()
{
inti,n;
Accdata[100];
//获取数据
GetDataFromTxt(data,"E:\secret.txt",&n);
printf("n=%d ",n);
printf("姓名账号密码 ");
for(i=0;i<n;++i)
printf("%-4s%-16s%-10s ",data[i].name,data[i].acc,data[i].psw);

//登录示例
putchar(' ');
characc[16],psw[16];
do{
//这里只是粗略地写了一个
//具体的账号错误或者密码错误自行发挥
printf("请输入账号:");
scanf("%s",acc);
printf("请输入密码:");
scanf("%s",psw);
for(i=0;i<n;++i)
{
if(strcmp(acc,data[i].acc)==0&&strcmp(psw,data[i].psw)==0){
printf("登陆成功! ");
break;
}
}
if(i==n){
printf("账号或密码不正确!请重新输入! ");
}else{
break;
}
}while(1);
printf("Byebye!!! ");

return0;
}

④ 单片机c语言密码设定和密码比对程序

关于AT24C02的读写是很简单的,网上有很多示例代码。在这里我给一个C语言的,是51的程序.

#include "24C02.H"

void Start() {
SDA=1;
SDA=1;
_nop_();
SCL=1;
SCL=1;
_nop_();
SDA=0;
SDA=0;
_nop_();
SCL=0;
SCL=0;
_nop_();
}

void Stoped() {
SCL=0;
SCL=0;
_nop_();
SDA=0;
SDA=0;
_nop_();
SCL=1;
SCL=1;
_nop_();
SDA=1;
SDA=1;
_nop_();
}

void Ack() {
SDA=0;
SDA=0;
_nop_();
SCL=1;
SCL=1;
_nop_();
SCL=0;
SCL=0;
_nop_();
SDA=1;
SDA=1;
_nop_();
}

void NoAck() {
SDA=1;
SDA=1;
_nop_();
SCL=1;
SCL=1;
_nop_();
SCL=0;
_nop_();
}

bit TestAck() {
bit ErrorBit;
SDA=1;
SDA=1;
_nop_();
SCL=1;
SCL=1;
_nop_();
ErrorBit=SDA;
_nop_();
_nop_();
SCL=0;
_nop_();
return(ErrorBit);
}

bit Write8Bit(unsigned char iic_input) {
unsigned char temp;
for(temp=8;temp!=0;temp--) {
SDA=(bit)(iic_input&0x80);
SCL=1;
SCL=1;
_nop_();
SCL=0;
SCL=0;
_nop_();
iic_input=iic_input<<1;
}
return(0);
}

void Write24c02(unsigned char *Wdata,unsigned int RomAddress,unsigned char number,unsigned char Write_Add) {
unsigned char RomHAddress,RomLAddress;
for(;number!=0;number--){
RomHAddress = (unsigned char)(RomAddress>>8);
RomLAddress = (unsigned char)RomAddress;
RomAddress++;
Start();
Write8Bit(Write_Add);
TestAck();
Write8Bit(RomHAddress);
TestAck();
Write8Bit(RomLAddress);
TestAck();
Write8Bit(*Wdata++);
TestAck();
Stoped();
DelayMs(5);
}

}

unsigned char Read8Bit() {
unsigned char temp,rbyte=0;
for(temp=8;temp!=0;temp--) {
SCL=1;
SCL=1;
_nop_();
_nop_();
rbyte=rbyte<<1;
rbyte=rbyte|((unsigned char)(SDA));
SCL=0;
SCL=0;
_nop_();
}
return(rbyte);
}

void Read24c02(unsigned char *RamAddress,unsigned int RomAddress,unsigned char bytes,unsigned char Write_Add,unsigned char Read_Add) {
unsigned char RomHAddress,RomLAddress;
RomHAddress = (unsigned char)(RomAddress>>8);
RomLAddress = (unsigned char)RomAddress;
Start();
Write8Bit(Write_Add);
TestAck();
Write8Bit(RomHAddress);
TestAck();
Write8Bit(RomLAddress);
TestAck();
Start();
Write8Bit(Read_Add);
TestAck();
while(bytes!=1)
{
*RamAddress=Read8Bit();
Ack();
RamAddress++;
bytes--;
}
*RamAddress=Read8Bit();
NoAck();
Stoped();
}

#define FIRSTADDRESS 0
#define WriteDeviceAddress 0xA0
#define ReadDeviceAddress 0xA1

main()
{
unsigned char a[10];
..............

Write24c02(a,FIRSTADDRESS,10,WriteDeviceAddress);

Read24c02(a,FIRSTADDRESS,10,WriteDeviceAddress,ReadDeviceAddress);
..............

}

要注意的是它的读写设备地址不一样,并且要根据你的芯片地址脚的电平来设定。
还有一点,读写时,通常用的是页读写方式,注意,写入一次只能连续写入64字节。读没有限制。

最后补充一点,你的密码最好用MD5方式加密。因为24c02芯片中的数据是可以被烧录器读出的。用md5加密,才能保证密码自身的保密。

⑤ c语言:为什么密码输入一致的显示不一致。

姓名部分较简单,你可以自己写。
口令部分写好了。
密码输入:允许回退键更正输入,回车结束输入

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
char p[50];
char UserName[50]="student";
char password[50]="iamtiger";
int i=0;
int n;
printf("Please enter your name:\n");
scanf("%s",UserName);
n=0;
Loop:
i=0;
printf("Please enter your passwd:\n");
fflush(stdin);
while ( i < 50 ){
p[i] = getch();
if (p[i] == '\r') break;
if (p[i] == '\b') { i=i-1; printf("\b \b"); } else {i=i+1;printf("*");};
}
p[i]='\0';
if ( strcmp(password,p)==0) printf("\npasswd is right!\n");
else {
printf("\npassword wrong\n");
n++;
if (n>=3) { printf("Err bye !\n"); return 0;} else goto Loop;
};
return 0;
}

⑥ c语言账号与密码检查的注解

摘要 编写一个密码检测程序,程序执行时,提示"Input password:“要求用户输入密码(标准密码预先设定为"hnkd2012”),然后通过字符串比较函数比较输入密码和标准密码是否相等。若相等,则显示“Congratulation!”;若不相等,则提示"Error,please input again:"重新输入,3次都不相等则提示"The program is terminated!"并终止程序的执行。要求自己编写一个字符串比较函数,而不使用系统的strcmp( )函数。

⑦ 请问,用C语言如何实现密码输入

c语言中可采用getch()函数来实现输入密码字符时,不显示字符到终端上,这时,只需要显示出一个相应的*就可以达到效果了。参考代码及运行效果如下图: