首页 > 代码库 > 【牛刀小试2】密码保护

【牛刀小试2】密码保护

【牛刀小试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://codingit.howbbs.comhttp://blog.csdn.net/mirrorsbeyourself

【牛刀小试2】密码保护