#include<stdio.h> #include<string.h> #include<ctype.h> int match(char* str1, char* str2) { if (*str1 == '\0' && *str2 == '\0') return 1; else if (*str1 == '\0' || *str2 == '\0') return 0; if (*str1 == '?' || *str1 == *str2) return match(str1 + 1, str2 + 1); if (*str1 == '*') { if (*(str1 + 1) == '*') return (match(str1 + 2, str2) || match(str1 + 2, str2 + 1) || match(str1 + 1, str2 + 1)); else return (match(str1 + 1, str2) || match(str1 + 1, str2 + 1) || match(str1, str2 + 1)); } return 0; } int main() { char str1[100], str2[100]; scanf("%s %s", str1, str2); int flag = 1; for (int i = 0; i < strlen(str1); i++) if (isupper(str1[i])) str1[i]=tolower(str1[i]); for (int i = 0; i < strlen(str2); i++) { if(isupper(str2[i])) str2[i]=tolower(str2[i]); if (isalpha(str2[i]) == 0 && isdigit(str2[i]) == 0 && str2[i] != '.') flag = 0; } if (flag==1 && match(str1, str2)) printf("true\n"); else printf("false\n"); return 0; }