1.问题描述 1.密码长度必须满足6~8个字符 2.两次输入的密码必须一致 3.密码中必须出现大写字母、小写字母和数字字符,并且只能出现这三种字符 4.密码不能回文 2.问题求解
面对本题对密码的多个要求,我们想到利用一个变量x来确认是否满足所有条件,若有一个不满足则报错并要求用户重新输入(注意,在重新进入循环时要对x进行重新赋值,防治出现死循环的情况),下面是完整代码。
//#include//#include //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; //}
本文到此结束,感谢大家的阅读,欢迎点赞评论互关,祝大家万事如意。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)