C程序错误:检查密码是否有效

时间:2018-03-25 17:20:36

标签: c

我试图创建一个c程序来检查密码是否至少包含: -1特殊字符 -1小写字母 -1个大写字母 -1位 当我测试它时,由于某种原因它没有工作我一直试图弄清楚我的错误但我不知道出了什么问题

这是我的尝试:

//check password =at least one upper /at least 1 lower/ at least 1 char;

#include <stdio.h> 
#include <ctype.h> 
#include <stdlib.h> 
#include <string.h>

void main() {

    char pass[20]; //password
    int a = 0; //size of the password
    int foundChar = 0;
    int foundUpper = 0;
    int foundLower = 0;
    int foundDigit = 0;
    int i = 0;

    do {
      printf("enter your password : ");
      scanf("%s", pass);
      a = strlen(pass);

      if (a = 8) {

        if (isdigit(pass[i]) && foundDigit == 0) {
          foundDigit = 1;
          i++;
        } else if (isupper(pass[i]) && foundUpper == 0) {
          foundUpper = 1;
          i++;
        } else if (islower(pass[i]) && foundLower == 0) {
          foundLower = 1;
          i++;
        } else if (foundChar == 0) {
          foundChar = 1;
          i++;
        }

      }

    }
    while ((a < 8) || (foundChar == 0) || (foundDigit == 0) || (foundUpper == 0) || (foundUpper = 0));

}

1 个答案:

答案 0 :(得分:0)

您没有循环密码 在if (a >= 8)语句之后,没有代码可以循环并检查字符串中的剩余字符。