这题简直有毒!
魔咒词典
https://www.nowcoder.com/practice/c6ca566fa3984fae916e6d7beae8ea7f
#include <stdio.h>
#include<string.h>
struct Mz{
char m[21];
char g[81];
}mz[100001];
int main(){
int N,i;char b;
for(i=0;;i++){
scanf("%c",&b);
if(b=='@'){
getchar();getchar();getchar();getchar();//吃掉END@
break;
}
for(int k=0;;k++){
scanf("%c",&mz[i].m[k]);
if(mz[i].m[k]==']'){
mz[i].m[k]='\0';
break;
}
}
getchar();//把空格吃了
gets(mz[i].g);
}
scanf("%d",&N);
char temp[80],c;
while(N--){
scanf("%c",&c);
if(c=='\n')//天坑!!!
scanf("%c",&c);
int tap=0;
if(c=='['){
for(int k=0;;k++){
scanf("%c",&temp[k]);
if(temp[k]==']'){
temp[k]='\0';
break;
}
}
for(int j=0;j<i;j++)
if(strcmp(mz[j].m,temp)==0){
puts(mz[j].g);
tap=1;
}
if(tap==0)printf("what?\n");
}
else {
temp[0]=c;char *p=&temp[1];
gets(p);
for(int j=0;j<i;j++)
if(strcmp(mz[j].g,temp)==0){
puts(mz[j].m);
tap=1;
}
if(tap==0)
printf("what?\n");
}
}
return 0;
}
