【牛刀小试2】密码保护
主要知识:
1. while循环
2. do-while循环
3. if-else
4. strcmp()函数
[充电一下]
strcmp()函数的知识
原型:int strcmp ( const char * str1, const char * str2 );
返回值:
< 0 | 表示str1与str2不相等,其的值小于str2的值 |
=0 | 表示str1与str2相等 |
>0 | 表示str与str2不等,且其值大于str2的值 |
如今已经进入"码奴"(密码的奴隶)的时代,人人都有很多密码
比如登入CSND也要有密码,银行卡也需要有密码等等。所以保存密
码特重要,要不然小心C币和钱不翼而飞了。
现在我们来编个程序,来保护我们珍贵的密码^-^
要求:
(1)输入密码后不显示在界面上,并使用星号代替
(2)可以删除错误的输入,即更改错误输入
(3)密码错误提示,只允许输入错误3次,否则强行退出
//密码保护
#include <stdio.h>
#include <stdlib.h> //for exit
#include <string.h> //for strcmp
int main( void )
{
int count= 0; //计算输入次数
charmima[ 7 ]; //用于存放输入的密码
intlength= 0;
charletter;
while(count<= 3 )
{
printf("\n输入您的6位密码: ");
while(length< 7 )
{
mima[ length++ ]= '\0'; //为mima数组赋值'\0'
}
length=0; //长度置为0
letter='\0';
while(letter!= '\r' ) //回车符
{
letter= getch();
if(( letter== '\b') && ( mima[ 0 ]== '\0' ) )
{
length= 0;
}
else
{
if(( letter== '\b' ) && ( mima[ 0 ]!= '\0' ) )
{
printf("\b" ); //退一个
printf(" " ); //清除错误的字母
printf("\b" ); //退回去
length--;
mima[length ]= '\0';
}
else
{
if(length< 6 )
{
printf("*" );
mima[length++ ]= letter;
}
}
}
}
mima[6 ]= '\0';
count++;
if(strcmp( "111111", mima )== 0 )
{
printf( "\n\n登入成功,欢迎使用^-^\n");
break;
}
else
{
printf("\n\nSorry,密码输入错误~_~\n" );
if( count>= 3 )
{
printf("\n\n为了保护您的账户,请尽快与我们的客服联系,谢谢合作\n" );
printf("\n客服服务电话:111-11111111\n" );
exit(1 );
}
printf("不过,您还有%d次机会,再试一次\n", 3- count );
}
}
return0;
}
运行结果:
【指尖的微笑】错误在所难免,希望得到大家的指正^-^
转载时保留原文的链接 http://oursharingclub.joinbbs.net和 http://blog.csdn.net/mirrorsbeyourself