C语言实现模拟用户登录

目录

一.问题要求

二.解决思路

库函数strcmp()

用法:

例子:


一.问题要求

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

二.解决思路

我们可以先确定一个密码,然后用户输入后,将其与正确密码进行对比,如果相同就执行一种情况;如果不同就执行另一种情况;错误三次就执行另一种情况。很明显,我们用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;
}

运行结果是:

明明密码是正确的但是仍然输出“登录失败”,这是因为:==不能用来比较两个字符串是否相同,如
果要比较需要用到一个库函数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;
}

我们再来看看结果:
  
这样就实现的我们想要的结果

库函数strcmp()

用法:

strcmp(str1,str2),str1——要比较的第一个字符串;str2——要比较的第二个字符串。将str1和str2对比:
如果返回值<0,就代表str1<str2;
如果返回值>0,就代表str1>str2;
如果返回值=0,就代表str1=str2;

例子:

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

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

  • 8
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳862

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值