思路是先判断两个字符串的长度
只有长度相同才有判定是否相等的必要
相同的时候
就是一个一个判断
忽略字符==’*’ 的情况
(我是用的用另一个字符数组来记录’*’的下标 好像并没有必要 -.-)
#include<stdio.h>
#include<string.h>
int main() {
char s[120];
char v[120];
int a[120];
int T,n,l,lv,sum;
int i;
scanf("%d",&T);
getchar();
while(T--) {
gets(s);
memset(a,0,sizeof(a));
l=strlen(s);
for(i=sum=0; i<l; i++) {
if(s[i]=='*')
a[i]=1;
}
scanf("%d",&n);
getchar();
while(n--) {
gets(v);
lv=strlen(v);
if(lv==l) {
for(i=0; i<l; i++) {
if(!a[i]&&s[i]!=v[i]) {
break;
}
}
if(i>=l)
sum++;
} else
continue;
}
printf("%d\n",sum);
}
return 0;
}
题目地址:【郑轻】[1804]ZY学长的密码