题目链接:http://ac.jobdu.com/problem.php?pid=1029
解题时间:2013/4/13
程序源码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int num=0;//魔咒条数
char magicWords[10000][21];
char magicWorks[10000][81];
int n;//测试用例数
char str[81];
int flag;//是否存在,1存在
int i;
char ch;
while(1)
{
i=0;
scanf("%c",&magicWords[num][i++]);
if(magicWords[num][i-1]=='@') break;
while(scanf("%c",&magicWords[num][i++]),magicWords[num][i-1]!=']');
magicWords[num][i-1]='\0';
scanf("%c",&ch);//读取之间的空字符
i=0;
while(scanf("%c",&magicWorks[num][i++]),magicWorks[num][i-1]!='\n');
magicWorks[num][i-1]='\0';
num++;
}
while(scanf("%c",&ch),ch!='@');//@END@结束
scanf("%d",&n);
scanf("%c",&ch);
while(n--)
{
flag=0;
i=0;
while(scanf("%c",&str[i++]),str[i-1]!='\n');
str[i-1]='\0';
if(str[0]=='[')
{
str[strlen(str)-1]='\0';
for(i=0; i<num; i++)
{
if(strcmp(str,magicWords[i])==0)
{
flag=1;
break;
}
}
if(flag==0) printf("what?\n");
else printf("%s\n",magicWorks[i]);
}
else
{
for(i=0; i<num; i++)
{
if(strcmp(str,magicWorks[i])==0)
{
flag=1;
break;
}
}
if(flag==0) printf("what?\n");
else printf("%s\n",&magicWords[i][1]);
}
}
return 0;
}