#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main()
{
//练习模拟用户登录情景 让用户输入密码 错误重新输 最多输三次后退出程序 如果正确 提示输入正确 正在登录
//首先设置一个6位密码 用于比对
//方法一:使用下标逐个比对的方法 比较笨
//char arr[] = { "123456" };
创建一个数组 用于存储用户输入的密码
//int i = 1;
//char arr1[] = { 0 };
//scanf("%s", arr1);
//int left = 0;
//while(left<=(strlen(arr)-1)){
// if (arr[left] == arr1[left] )
// {if( i < 3)
// left++;
// else
// break;
// }
// else
//
// while(i<3){
// printf("密码不正确,请重新输入!\n");
// scanf("%s", arr1);
// left = 0;
// i++;
// break;
// }
// }
//if (left == strlen(arr))
// printf("密码输入正确!正在登陆.......");
//else
// printf("输入超过三次,已被锁定!");
//方法二:直接进行两个字符串数组对比 使用strcmp()函数
char arr[] = { "123456" };
printf("请您输入密码:");
char arr1[] = { 0 };
int i = 0;
for (i = 0; i < 3; i++) {
scanf("%s", arr1);
if (strcmp(arr, arr1) == 0) {
{printf("密码输入正确,正在登陆.......");
break; }
}
else {
if (i == 2)
printf("已输入三次,账户冻结!");
else
printf("密码错误,请重新输入");
}
}
return 0;
}
学习循环和选择的嵌套,新函数strcmp()比较字符串数组是否一致
不同的思路,往往会创造出不同的代码,虽然都可以实现最终的目的,但是也存在适用场合,严谨性等差别,但是不管如何,能够独自通过练习学出来,就是一种进步。只有通过不断的练习,才能从根本入手,做到简洁严谨