目录
1.问题描述
2.问题求解
?1.问题描述
1.密码长度必须满足6~8个字符
2.两次输入的密码必须一致
3.密码中必须出现大写字母、小写字母和数字字符,并且只能出现这三种字符
4.密码不能回文
2.问题求解
面对本题对密码的多个要求,我们想到利用一个变量x来确认是否满足所有条件,若有一个不满足则报错并要求用户重新输入(注意,在重新进入循环时要对x进行重新赋值,防治出现死循环的情况),下面是完整代码。
//#include<stdio.h>
//#include<string.h>
//int main()
//{
// char sec[10] = { 0 };
// int x = 0;
// int y = 0;
// int i = 0;
// int a = 0, b = 0, c = 0, count = 0;
// do {
// if (x == 1)
// printf("输入不合法请重新输入");
// x = 0;
// gets(sec);
// int sz = strlen(sec);
// if (sz < 6 || sz>8)
// x = 1;
// for (i = 0; i < sz; i++)
// {
// if (sec[i] >= 'A' && sec[i] <= 'Z')
// {
// a = 1;
// count++;
// }
// if (sec[i] >= 'a' && sec[i] <= 'z')
// {
// b = 1;
// count++;
// }
// if (sec[i] >= '0' && sec[i] <= '9')
// {
// c = 1;
// count++;
// }
// }
// if ((count == sz) && a && b && c)
// ;
// else
// x = 1;
// char* left = sec;
// char* right = sec + sz - 1;
// while (left < right)
// {
// if (*left != *right)
// break;
// left++;
// right--;
// }
// if (left >= right)
// x = 1;
// } while (x);
// while(1)
// {
// printf("请确认密码\n");
// char sec2[10] = { 0 };
// gets(sec2);
// int m = strcmp(sec, sec2);
// if (m == 0)
// {
// printf("密码正确\n");
// break;
// }
// else
// printf("密码错误,重新输入\n");
// }
// return 0;
//}
本文到此结束,感谢大家的阅读,欢迎点赞评论互关,祝大家万事如意。
|