第一题、太简单(略)
第二题、数组排序
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int match(char c1,char c2){
if('A' <=c1 && c1 <='Z'){
c1+='a'-'A';
}
if('A' <= c2 && c2 <= 'Z')
c2+='a'-'A';
if(c1 == c2) return 1;
else return 0;
}
int main(){
int n,i,j,k;
char a[1001][1001];
char s[1001];
while(scanf("%d",&n)!=EOF){
for(i=0;i<n;i++){
scanf("%s",a[i]);
}
scanf("%s",s);
for(i=0;i<n;i++){
for(j=0,k=0;j<strlen(a[i]) && k<strlen(s);j++,k++){
if(s[k] == '['){
while(s[++k] != ']'){
if(match(a[i][j],s[k]))
break;
}
if(s[k] == ']')
break;
while(s[k] !=']')
k++;
}
else{
if(! match(a[i][j],s[k]))
break;
}
}
if(j == strlen(a[i]) && k == strlen(s))
printf("%d %s\n",i+1,a[i]);
}
}
return 0;
}