密碼驗證合格程式(c語言)
阿新 • • 發佈:2019-01-22
密碼要求:
1.長度超過8位
2.包括大小寫字母.數字.其它符號,以上四種至少三種
3.不能有相同長度超2的子串重複
說明:長度超過2的子串
#include"stdio.h" #include"string.h" int process_str(char str[]) { int len,i,rep,Lowercase=0,Uppercase=0,Digit=0,others=0; int j; len = strlen(str); if(len <= 8){ printf("NG\n"); return 0; } for(i=0;i<len;i++){ if(str[i]>='a' && str[i]<='z'){ Lowercase = 1; } else if(str[i]>='A' &&str[i]<='Z'){ Uppercase = 1; } else if (str[i]>='0' && str[i]<='9'){ Digit = 1; } else{ others = 1; } } rep = Lowercase + Uppercase + Digit + others; if(rep <= 2){ printf("NG\n"); return 0; } int array[len+1][len+1] ; memset(array,0,sizeof(array)); for(i=0;i<len;i++){ for(j=0;j<len;j++){ if(str[i] == str[j]){ array[i+1][j+1] = array[i][j] + 1; } } } for(i=0;i<len+1;i++){ for(j=0;j<len+1;j++){ if(i!=j && array[i][j]>2){ printf("NG\n"); return 0; } } } printf("OK\n"); return 0; } int main() { char str[100]; while(gets(str)) { process_str(str); } return 0; }