如何利用题给条件改动,使函数产生密码不回显功能?

#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>

int main()
{
    char name[]="ad",password[]="1234";
    char user[100],psw[100];
    do{                             //如果用户名或者密码任一个错误,重新在输入
        printf("请输入用户名:");
        gets(user);                  //输入用户名字符串
        strlwr(user);                //将输入的字符串全部转化为小写
        printf("请输入密码:");
        gets(psw);                    //输入密码字符串
        if(strcmp(name,user)!=0||strcmp(password,psw)!=0)
        printf("用户名和密码错误,请重新输入!\n");
    }while(strcmp(name,user)!=0||strcmp(password,psw)!=0);
    printf("\n欢迎您 :%s",user);
    return 0;
}

如何利用以下给的条件进行密码不回显的代码输出?

1、psw[i]=getch();  //输入的字符存储在psw[i]中,不回显
2、putch('*');     //输入一个'*'字符来在屏幕上代替刚输出的字符
3、psw[i]='\0';      //在字符串的尾部加上'/0'

怎样将这几个代码加进去,得到密码不回显的要求?

加上相应头文件,再把相应代码修改后放在获取密码字符串的位置即可.

修改如下:

参考链接:


http://ascii.wjccx.com/


#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h> 
 
int main()
{
    char name[]="ad",password[]="1234";
    char user[100],psw[100];
    int i=0;
    do{                             //如果用户名或者密码任一个错误,重新在输入
        i=0;
        printf("请输入用户名:");
        gets(user);                  //输入用户名字符串
        strlwr(user);                //将输入的字符串全部转化为小写
        printf("请输入密码:");
        //gets(psw);                    //输入密码字符串
        
        // https://blog.csdn.net/qq_45571006/article/details/123327524
        psw[i]=getch();  //输入的字符存储在psw[i]中,不回显
        if(psw[i]!=13){  // 如果输入的不是回车,则回显 
            putch('*');     //输入一个'*'字符来在屏幕上代替刚输出的字符
        } 
        
        
       // http://ascii.wjccx.com/     
        while(psw[i]!=13){  // 如果没有输入回车,则将字符存于密码字符数组中 
        //    printf("psw[%d]=%c,%d\n",i,psw[i],psw[i]);
        
            i++;   // 指向密码字符数组下一个字符位置 
            psw[i]=getch();  //输入的字符存储在psw[i]中,不回显
            if(psw[i]!=13){  // 如果输入的不是回车,则回显 
                putch('*');     //输入一个'*'字符来在屏幕上代替刚输出的字符
            } 
            
            
        }
    //    printf("psw[%d]=%c,%d\n",i,psw[i],psw[i]);
        psw[i]='\0';      //在字符串的尾部加上'/0'
        
        if(strcmp(name,user)!=0||strcmp(password,psw)!=0)
            printf("\n用户名和密码错误,请重新输入!\n");
    }while(strcmp(name,user)!=0||strcmp(password,psw)!=0);
    printf("\n欢迎您 :%s",user);
    return 0;
}

img