编写代码模拟三次密码输入的场景(strcmp(s1,s2))

本文介绍了一个简单的密码输入验证程序,用户最多有三次机会输入正确的密码。如果密码正确,程序将显示“登录成功”。若三次尝试均失败,程序将提示退出。代码使用C语言实现,通过strcmp函数比较用户输入的密码与预设密码。

编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,
可以重新输入,最多输入三次。三次均错,则提示退出程序。
首先,
char password[16] = { 0 };//得到一个char password[20],可放16个字符串,一开始password中全放0.
scanf("%s",password);//输入你的密码
if (strcmp(password, “123456”) == 0)// strcmp
头文件 string.h
比较两个字符串设这两个字符串为str1,str2,
若str1==str2,则返回零;
若str1<str2,则返回负数;
若str1>str2,则返回正数。
matlab中函数,strcmp(s1,s2) 判断两个字符串s1和s2是否相同,相同返回true ,不同返回false

具体代码如下

int main()
{
 int i = 0;
 char password[16] = { 0 };
 for (i = 0; i < 3; i++)
 {
  printf("请输入密码:>");
  scanf("%s",password);
  if (strcmp(password, "123456") == 0)//比较两个字符串
  {
   printf("登陆成功!\n");
   break;
  }
  else
  {
   printf("密码错误!\n");
  }
 }
 if (i == 3)//三次均错,则提示退出程序。
 {
  printf("三次密码输入错误,退出程序!\n");
 }
 system("pause");
 return 0;
}
### 非递归方法实现三次密码输入的登录场景 以下是使用非递归方法模拟用户登录功能的代码示例,允许用户最多输入三次密码。如果密码正确,则提示登录成功;如果三次输入错误,则退出程序。 ```c #include <stdio.h> #include <string.h> #define MAX_ATTEMPTS 3 // 最大尝试数 #define CORRECT_PASSWORD "123456" // 正确密码 int main() { int attempts = 0; // 尝试计数器 char password[20]; // 存储用户输入密码 while (attempts < MAX_ATTEMPTS) { // 控制尝试数 printf("请输入密码: "); scanf("%s", password); // 获取用户输入密码 if (strcmp(password, CORRECT_PASSWORD) == 0) { // 比较输入密码与正确密码 printf("登录成功!\n"); return 0; // 成功登录后退出程序 } else { attempts++; // 密码错误,增加尝试计数 printf("密码错误!您还有 %d 机会。\n", MAX_ATTEMPTS - attempts); } } printf("尝试数过多,程序退出。\n"); // 超过最大尝试数后退出 return 1; } ``` #### 实现原理 上述代码通过 `while` 循环控制用户的密码输入尝试数。每循环中,程序会提示用户输入密码,并将其与预设的正确密码进行比较。如果匹配成功,则输出登录成功的消息并退出程序;如果密码错误,则增加尝试计数器的值,并提示剩余尝试数[^1]。当尝试数达到设定的最大值时,程序将退出并提示用户尝试数过多。 #### 示例运行 假设正确密码为 `123456`,以下为可能的运行情况: - 用户第一输入 `abc`,程序提示密码错误并显示剩余两机会。 - 用户第二输入 `123`,程序提示密码错误并显示剩余一机会。 - 用户第三次输入 `123456`,程序提示登录成功并退出。 - 如果用户三次输入均为错误密码,程序将提示尝试数过多并退出。 #### 注意事项 - 程序中使用了 `strcmp` 函数来比较用户输入密码与正确密码是否一致。 - 密码输入限制为 20 个字符,可根据需求调整缓冲区大小。 - 在实际应用中,建议对密码输入进行加密处理以提高安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值