样例能过,但wa,求大佬指教QAQ
查看原帖
样例能过,但wa,求大佬指教QAQ
1503571
Hoshimati楼主2024/11/18 22:12
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>

int judge(char* a) {
    int len = strlen(a);
    if (len < 6 || len > 12) {
        return 0;
    }
    int num = 0, low = 0, nal = 0, up = 0;
    for (int i = 0; i < len; i++) {
        if (a[i] >= 'a' && a[i] <= 'z') {
            low = 1;
        }
        else if (a[i] >= '0' && a[i] <= '9') {
            num = 1;
        }
        else if (a[i] >= 'A' && a[i] <= 'Z') {
            up = 1;
        }
        else if (a[i] == '!' || a[i] == '@' || a[i] == '#' || a[i] == '$') {
            nal = 1;
        }
        else {
            return 0;
        }
    }
    if ((low + num + up < 2) || nal != 1) {
        return 0;
    }
    return 1;
}

int main() {
    char arr[102];
    scanf("%s", &arr);
    char* arr1[100];
    char* p = strtok(arr, ",");
    int i = -1;
    int j = 0;
    while (p != NULL) {
        arr1[++i] = (char*)malloc(strlen(p) + 1);
        strcpy(arr1[i], p);
        p = strtok(NULL, ",");
        if (judge(arr1[i])) {
            j++;
        }
    }
    for (int k = 0; k < j; k++) {
        if (judge(arr1[k])) {
            printf("%s", arr1[k]);
        }
        if (k != j - 1) {
            printf("\n");
        }
    }
    for (int k = 0; k < i; k++) {
        free(arr1[k]);
    }
    return 0;
}
2024/11/18 22:12
加载中...