c语言密码星号显示
时间: 2023-12-12 14:08:36 浏览: 45
可以通过使用字符数组和循环来实现 C 语言中的密码星号显示效果。具体实现步骤如下:
1. 定义一个字符类型的数组来存储用户输入的密码。
2. 使用 scanf() 函数来获取用户输入的密码,并将其存储到字符数组中。
3. 使用循环遍历字符数组,将每个字符替换为星号字符 '*'
4. 输出替换后的字符数组,即可实现密码星号显示效果。
下面是具体的代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char password[20];
int i;
printf("请输入密码:");
scanf("%s", password);
printf("密码为:");
for (i = 0; i < strlen(password); i++) {
printf("*");
}
printf("\n");
return 0;
}
```
在上面的代码中,我们使用了字符数组 password 来存储用户输入的密码,使用了 scanf() 函数来获取用户输入。然后使用了循环遍历字符数组,将每个字符替换为星号字符 '*',并使用 printf() 函数输出替换后的字符数组。
相关问题
c语言用星号显示密码
在C语言中,可以使用下面的代码来实现用星号显示密码:
```c
#include <stdio.h>
#include <conio.h>
int main()
{
char password[20];
int i = 0;
printf("Enter Password: ");
// 使用getch()函数读取输入的字符,不显示在屏幕上
while ((password[i] = getch()) != '\r')
{
printf("*");
i++;
}
password[i] = '\0';
printf("\nPassword entered is: %s", password);
return 0;
}
```
在上面的代码中,我们使用了getch()函数来读取输入的字符,但是不在屏幕上显示出来。而是用printf()函数输出星号来代替输入的字符。最后,我们将输入的密码以字符串的形式输出。
c语言中,输入密码被*覆盖
在C语言中,如果想要输入密码时显示星号而不是明文,可以使用标准库中的`getch()`函数,该函数不会将输入的字符回显到屏幕上,可以有效地保护输入的密码。
以下是一个简单的示例代码,可以实现输入密码时显示星号:
```c
#include <stdio.h>
#include <conio.h> //需要用到getch()函数
int main() {
char password[20];
int i = 0;
char ch;
printf("请输入密码:");
while ((ch = getch()) != '\r') { //当输入回车时结束
if (ch == '\b') { //当输入退格时,删除前一个字符
if (i > 0) {
i--;
printf("\b \b"); //将之前的字符用空格覆盖,并将光标移回原来的位置
}
} else {
password[i++] = ch;
printf("*");
}
}
password[i] = '\0'; //将字符串最后一个字符设置为'\0',表示字符串结束
printf("\n输入的密码是:%s\n", password);
return 0;
}
```
需要注意的是,使用该方法只是简单地避免了密码明文显示,但并不能保证密码的绝对安全性,如遭受恶意攻击仍可能被破解。在实际应用中,应该选择更加安全的密码保护方案。