编写代码模拟三次密码输入的场景!
运行环境 win10 vs2013
编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,
可以重新输入,最多输入三次。三次均错,则提示退出程序。
首先我们需要定义一个字符数组用来保存用户输入的内容并且我们将其内容初始化为零.在实际中 假设利用语句
if(password=="123456"){
printf("登陆成功\n");
}
这样其是不可行的.因为现在是两个字符数组.这两个等号在字符数组中表示并非数组里面的内容.为了比较字符串的内容是否相同,我们需要依次对其中每一个元素都需要对比一遍,当每一个元素都相同时,字符数组才相同.
如果让我们自己按照每一个元素对比去完成这个要求其实也是可行的,但是如果元素过多,程序就会显得很繁琐和麻烦在这里我们引进C语言库中的一个函数 strcmp()就可已完成字符数组中依次对每个元素进行比较! strcmp()函数具体用法可点击下面网址进行查询www.cplusplus.com
虽然这个函数里面传递的是两个指针,但是数组和指针在一定条件下可以转换
这里的Value指的是ASCII的大小,比如依次取两个字符串的对应字符,如果这两个字符能够分出大小,那么字符串的大小也就确定了,如果分不出,那么依次取下一个字符进行比较总结为----"字典序",其实类似于英文字典排序规则.
运行结果如下
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(){
int i = 0;
for (; i < 3; i++){
char password[1000] = { 0 };
printf("请输入密码: ");
scanf("%s", password);
if (strcmp(password, "123456") == 0){//如果忘记和0比较,逻辑刚好相反
printf("登陆成功\n");
break; //跳出循环
}
}
if (i == 3){ //对退出循环作出判断
//循环三次,失败退出循环
printf("三次登陆失败,退出循环!\n");
}
else{
//登陆成功退出循环
}
system("pause");
return 0;
}