密码设置问题,大家来帮帮忙!
我是新手,哈哈,问题是这样的,我的密码要求:当我想设置密码为123,但是我想当输入1时,屏幕显示的是*,当输入2时,屏幕显示的是*.。。。还有的就是,怎么比较两次输入的密码输入一致?大家给点具体的,不过给思想也可以的,谢谢

程序代码:#include<stdio.h>
#include<string.h>
#include<conio.h>
int main(void)
{
char ch;
int i=0,len;
char password[]="12345";
len=strlen(password);
for(ch=getch(); ch!=13;ch= getch())
{
if(ch == '\b') //退格键
{
if(i>0)
{
printf("\b");
password[--i]='\0';
}
putchar(0);
printf("\b");
continue;
}
if (i>=len)
{
printf("\b");
printf("*");
continue;
}
if(i)
{
printf("\b");
printf("*");
}
if(i+1 < len)
putchar(ch);
else
printf("*");
password[i++]=ch;
}
password[i]='\0';
putchar('\n');
puts(password);
getchar();
return 1;
}根据4楼,试一试这个程序效果如何

程序代码:#include<stdio.h>
#include<string.h>
#include<conio.h>
void keystring(char *password,const int N)
{
char ch;
int i=0;
for(ch=getch(); ch!=13||i<N/2;ch= getch()) //输入存在某些BUG
{
if(ch == '\b') //退格键
{
if(i>0)
{
printf("\b");
password[--i]='\0';
}
putchar(0);
printf("\b");
continue;
}
if(ch == 13)
{
if(i<N/2)
{
printf("\n设置位数不够,输入密码在6位至12位之间,回车作为确定\n");
i=0;
continue;
}
}
if (i>=N)
{
printf("\b");
printf("*");
continue;
}
if(i) //令前面变为*
{
printf("\b");
printf("*");
}
putchar(ch);
if(i<N) //起保护
password[i++]=ch;
}
printf("\b");
printf("*");
password[i]='\0';
putchar('\n');
}
int main(void)
{
const int N=12;
char password[N+1],passwordTwo[N+1];
int change=3;
puts("输入密码在6位至12位之间,回车作为确定");
keystring(password,N);
do{
printf("输入第二次密码,有%d次机会\n",change);
keystring(passwordTwo,N);
if(strcmp(password,passwordTwo))
{
printf("\n密码错误\n");
--change;
}
else
{
printf("\n密码正确\n%s\n",passwordTwo);
change=0;
}
}while(change);
getchar();
return 1;
}相对完整版,