只能使用红色的那句话,否则就会WA,mark一下,以后学习
#include <iostream>
#include <cstring>
#include <string.h>
using namespace std;
struct Magic
{
char Name[25];
char Content[81];
}Magics[100000];
//#define LOCAL
int main()
{
#ifdef LOCAL
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#endif
char cInput[150];
int index=0;
while(cin.getline(cInput,150))
{
if(strcmp(cInput,"@END@")==0)
break;
int tmpIndex=0;
char *p=cInput;
while(*p!=']')
{
Magics[index].Name[tmpIndex]=*p;
p++;
tmpIndex++;
}
Magics[index].Name[tmpIndex++]=']';
p++;
Magics[index].Name[tmpIndex]='\0';
p++;
tmpIndex=0;
while(*p)
{
Magics[index].Content[tmpIndex]=*p;
p++;
tmpIndex++;
}
Magics[index].Content[tmpIndex]='\0';
index++;
}
int num;
cin>>num;
<span style="color:#ff0000;">cin.ignore();</span>
while(num>0)
{
num--;
cin.getline(cInput,150);
if(cInput[0]=='[')
{
bool isTrue=true;
for(int i=0;i<index;i++)
if(strcmp(cInput,Magics[i].Name)==0)
{
cout<<Magics[i].Content<<endl;
isTrue=false;
break;
}
if(isTrue)
cout<<"what?"<<endl;
}
else
{
bool isTrue=true;
for(int i=0;i<index;i++)
if(strcmp(cInput,Magics[i].Content)==0)
{
for(int j=1;j<strlen(Magics[i].Name)-1;j++)
cout<<Magics[i].Name[j];
cout<<endl;
isTrue=false;
break;
}
if(isTrue)
cout<<"what?"<<endl;
}
}
return 0;
}