首页 > 其他分享 >C语言实现模拟用户登录

C语言实现模拟用户登录

时间:2022-10-21 22:31:07浏览次数:45  
标签:登录 str2 str1 C语言 密码 printf password 模拟

一.问题要求

模拟用户登录情况,用户输入密码,如果密码正确就提示登陆成功,错误就显示登录失败,且只能有三次机会,输入错误三次就退出程序

二.解决思路

我们可以先确定一个密码,然后用户输入后,将其与正确密码进行对比,如果相同就执行一种情况;如果不同就执行另一种情况;错误三次就执行另一种情况。很明显,我们用if语句就可以实现这种要求

我们试着写一下代码:

#include<stdio.h>
int main()
{
int password[20]={0};
int i=0;
for (i=0;i<3;i++)
{
printf("请输入密码:");
scanf("%s",&password);
if(password=="123456")
{
printf("登陆成功\n");
break;
}
else
{
printf("登录失败\n");
}
}
if(i==3)
printf("三次密码都错误,退出程序\n");
return 0;
}

运行结果是:

C语言实现模拟用户登录_退出程序


明明密码是正确的但是仍然输出“登录失败”,这是因为:==不能用来比较两个字符串是否相同,如
果要比较需要用到一个库函数strcmp,同时需要头文件#include<string.h>
。我们再试试:

#include<stdio.h>
#include<string.h>
int main()
{
int password[20]={0};
int i=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");
return 0;
}

我们再来看看结果:

 

C语言实现模拟用户登录_退出程序_02

这样就实现的我们想要的结果


三.库函数strcmp()

用法:

strcmp(str1,str2),str1——要比较的第一个字符串;str2——要比较的第二个字符串。将str1和str2对比:

如果返回值<0,就代表str1<str2;

如果返回值>0,就代表str1>str2;

如果返回值=0,就代表str1=str2;


例子:

C语言实现模拟用户登录_C语言实现模拟用户登录_03

 输出1,说明“abc”小于“ABC”,在ASCII码表中的确大写字母在小写字母前面,所以输出正确

C语言实现模拟用户登录_#include_04

 输出0,则str1和str2相同,正确。

标签:登录,str2,str1,C语言,密码,printf,password,模拟
From: https://blog.51cto.com/u_15832450/5784623

相关文章

  • c语言—调试篇—笔记
    调试#include<stdio.h>intmain(){char*p="hellobit.";printf("%s\n",p);return0;}#include<stdio.h>intmain(){inti=0;intarr[10]={0};for(i=0;i<=12;i++......
  • android实现登录注册界面
    创建一个androidstudio工程在drawable中添加main_left:<?xmlversion="1.0"encoding="utf-8"?><shapexmlns:android="http://schemas.android.com/apk/res/andr......
  • C语言-结构体
    (5条消息)C语言中的结构体(struct)___Sunshine_的博客-CSDN博客_结构体......
  • 某某某某招某某某 网站js登录加密方式。
    1.135分析后为AES加密。加密流程constCryptoJS=require('crypto-js');//引用AES源码jsconste=JSON.parse('{"data":{"password":"123456"},"key":"pigxpigxpi......
  • 【C语言】数组
    ......
  • JDBC练习_登录案例和JDBC事务管理
    JDBC练习_登录案例练习:需求:1.通过键盘录入用户名和密码  2.判断用户是否登录成功"select*fromuserwhereusername="" andpassword="......
  • C/C++停车场模拟(栈和队列)
    C/C++停车场模拟(栈和队列)【讨论问题2】栈和队列的应用[问题描述]设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的......
  • JDBC工具类和JDBC登录案例
    JDBC工具类:抽取JDBC工具类:JDBCUtils目的:简化书写分析∶1.注册驱动也抽取2.抽取一个方法获取连接对象3.抽取一个方法释放资源代码实现:/***JDBC工具类*/publicc......
  • c语言中文件fopen小问题
    FILE*fp1,*fp2;if((fp1=fopen("D:\\test1.txt","w+"))==NULL)//切记,一定不要忘记前面的括号,否则结合方式问题,写不进去{printf("......
  • QEMU 仿真模拟 STM32 最小开发板 STM32F103
    软件介绍QEMU是一款开源虚拟机,可以用来模拟各种系统开发板,当然也可以用来模拟stm32的开发板QEMU官方说明文档在此https://www.qemu.org/docs/master/system/ar......