密码设置问题,大家来帮帮忙!
我是新手,哈哈,问题是这样的,我的密码要求:当我想设置密码为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; }相对完整版,