C语言加密码变成星号

2024-11-23 01:00:43
推荐回答(1个)
回答1:

参照原代码,错误修正如下:

void pass()
{
    int a, i;   // 定义变量i,用于密码赋值
    char s1[10] = {"112233"};
    char s2[10];
    char c;     // 定义变量c
    do
    {
    printf( " ***************************************************\n" );
    printf( "\n" );
    printf( " ★★★★★★★★  请 输 入 密 码 :★★★★★★★★\n" );
    printf( "\n" );
    printf( " ***************************************************\n" );
    i = 0;    // i初始化
    while( ( c = getch() ) != '\r' ) // 回车符作为输入终止标识
    {
        putchar( '*' );       // 单字符需用单引号
        s2[i] = c;            // 保存到s2中
        i++;
    }
    putchar( '\n' );
    s2[i] = '\0';       // s2结尾添加一个终止符
    //gets(s2);         // 不再需要
    if( strcmp( s1, s2 ) == 0 )a = 1;
    else
    {
        a = 0;
    }
    if( a == 1 )printf( "密码输入正确\n" );
    else if( a == 0 )
        printf( "对不起密码输入错误,请从新输入\n" );
    }
    while( a == 0 );
    system( "cls" );
}