C语言:编写代码实现,模拟用户登录情景,并且只能登录三次

简介: 思路:总体思路:(一). 生成相关变量、存放输入数据的字符数组,再设置一个变量flag方便后面判断密码是否一致,一致则把flag改为1,不一致则还是0。

思路:

总体思路:

(一). 生成相关变量存放输入数据的字符数组

再设置一个变量flag方便后面判断密码是否一致

一致则把flag改为1不一致还是0

   (二). 使用for循环循环输入三次数据

                   

(三) . 在for循环中设置if条件判断语句循环判断三次数据

                 

(四). 跳出for循环后看变量flag情况打印退出程序信息

第一步:

(1). 生成相关变量

           

(2). 生成存放输入数据的字符数组

(3). 设置一个变量flag

方便后面判断密码是否一致

一致把flag改为1不一致还是0.

实现代码:

#include <stdio.h>
int main()
{
  //生成相关变量:
  int i = 0; //循环变量
  //生成存放输入数据的字符数组
  char password[20] = { 0 };
  //设置一个变量flag:
  int flag = 0;
  return 0;
}

实现图片:

image.png

第二步:

(1). 使用for循环,循环输入三次数据

                     

(2). 输入字符串可以使用:scanf("%s", password);

因为 password数组名,是数组首地址,所以不用加取地址符&

                   

实现代码:

#include <stdio.h>
int main()
{
  //生成相关变量:
  int i = 0; //循环变量
  //生成存放输入数据的字符数组
  char password[20] = { 0 };
  //设置一个变量flag:
  int flag = 0;
  //使用for循环,循环输入三次数据:
  for (i = 0; i < 3; i++)
  {
    //输入前先打印提示信息:
    printf("请输入密码:");
    //输入数据:
    scanf("%s", password);
    //因为password是数组,数组名是数组首地址,所以不用取地址符&
  }
  return 0;
}

实现图片:


image.png

第三步:

(1). 在for循环中设置if条件判断语句循环判断三次数据

           

(2). 判断密码(字符串是否相等

两个字符串比较不能使用 == (等于),应该使用

strcmp(字符数组名,"要比较的字符串")

库函数,需添加头文件<string.h>

strcmp 返回 0 :表示2个字符串相等

strcmp 返回 >0 的数字:表示 第一个字符串大于第二个字符串

strcmp 返回 <0 的数字:表示 第一个字符串 小于第二个字符串

               

字符串比较大小:比较的是对应位置字符的ASCII值

如:

abcdabq 比较:

第一位:a == a

第二位:b == b

第三位c < q

c的ASCII值 小于 q的ASCII值

所以 abcd < abq

(3). 如果密码正确打印相应信息,设置flag为1,使用break跳出循环

             

(4). 如果密码错误打印相应信息

实现代码:

#include <stdio.h>
#include <string.h>
int main()
{
  //生成相关变量:
  int i = 0; //循环变量
  //生成存放输入数据的字符数组
  char password[20] = { 0 };
  //设置一个变量flag:
  int flag = 0;
  //使用for循环,循环输入三次数据:
  for (i = 0; i < 3; i++)
  {
    //输入前先打印提示信息:
    printf("请输入密码:");
    //输入数据:
    scanf("%s", password);
    //因为password是数组,数组名是数组首地址,所以不用取地址符&
    //设置if条件判断语句循环判断三次数据
    if (strcmp(password, "123456") == 0)
      //假设密码是 123456 ,如果相等会返回 0,说明输入的和密码相同
    {
      printf("登录成功\n");
      flag = 1;
      break; //成功则跳出循环
    }
    else
    {
      printf("密码错误\n");
    }
  }
  return 0;
}

实现图片:


image.png

第四步:

跳出 for循环 后 ,看变量flag情况打印退出程序信息

                   

实现代码:

#include <stdio.h>
#include <string.h>
int main()
{
  //生成相关变量:
  int i = 0; //循环变量
  //生成存放输入数据的字符数组
  char password[20] = { 0 };
  //设置一个变量flag:
  int flag = 0;
  //使用for循环,循环输入三次数据:
  for (i = 0; i < 3; i++)
  {
    //输入前先打印提示信息:
    printf("请输入密码:");
    //输入数据:
    scanf("%s", password);
    //因为password是数组,数组名是数组首地址,所以不用取地址符&
    //设置if条件判断语句循环判断三次数据
    if (strcmp(password, "123456") == 0)
      //假设密码是 123456 ,如果相等会返回 0,说明输入的和密码相同
    {
      printf("登录成功\n");
      flag = 1;
      break; //成功则跳出循环
    }
    else
    {
      printf("密码错误\n");
    }
  }
  //跳出 for循环 后,看变量flag情况打印退出程序信息。
  if (flag == 0)
  {
    printf("退出程序");//密码错误 则 退出程序
  }
  return 0;
}

实现图片:

image.png

最终代码和实现效果

最终代码:

#include <stdio.h>
#include <string.h>
int main()
{
  //生成相关变量:
  int i = 0; //循环变量
  //生成存放输入数据的字符数组
  char password[20] = { 0 };
  //设置一个变量flag:
  int flag = 0;
  //使用for循环,循环输入三次数据:
  for (i = 0; i < 3; i++)
  {
    //输入前先打印提示信息:
    printf("请输入密码:");
    //输入数据:
    scanf("%s", password);
    //因为password是数组,数组名是数组首地址,所以不用取地址符&
    //设置if条件判断语句循环判断三次数据
    if (strcmp(password, "123456") == 0)
      //假设密码是 123456 ,如果相等会返回 0,说明输入的和密码相同
    {
      printf("登录成功\n");
      flag = 1;
      break; //成功则跳出循环
    }
    else
    {
      printf("密码错误\n");
    }
  }
  //跳出 for循环 后,看变量flag情况打印退出程序信息。
  if (flag == 0)
  {
    printf("退出程序");//密码错误 则 退出程序
  }
  return 0;
}

实现效果:

image.png

总结:

学习 strcmp()库函数 的使用:

用于判断两字符串是否相等需添加头文件<string.h>

strcmp(字符数组名,"要比较的字符串")

                     

strcmp(字符数组名,"要比较的字符串")

strcmp 返回 0 :表示2个字符串相等

strcmp 返回 >0 的数字:表示 第一个字符串大于第二个字符串

strcmp 返回 <0 的数字:表示 第一个字符串 小于第二个字符串      

字符串比较大小:比较的是对应位置字符的ASCII值            

相关文章
|
21天前
|
机器学习/深度学习 C语言 Windows
C语言的管理系统代码
C语言学生宿舍管理系统代码
|
20天前
|
算法 编译器 C语言
猜数字游戏C语言代码实现
猜数字游戏C语言代码实现
|
21天前
|
自然语言处理 Ubuntu 编译器
|
21天前
|
存储 机器学习/深度学习 编译器
C语言代码学习笔记
<编程精粹:编写高质量C语言代码> 读书笔记
|
21天前
|
JavaScript C语言
|
20天前
|
存储 安全 Serverless
扫雷游戏C语言代码实现——万字长文超详细,手把手教你实现,新手也能学会
扫雷游戏C语言代码实现——万字长文超详细,手把手教你实现,新手也能学会
|
21天前
|
移动开发 安全 C语言
|
21天前
|
C语言
C语言练习代码第一篇
C语言练习代码第一篇
|
21天前
|
C语言 图形学 C++
|
17天前
|
C语言
C语言实现猜数字游戏:代码详解与函数解析
C语言实现猜数字游戏:代码详解与函数解析
12 0