刚发现hdu 上这个题提交过 没过 然后发现PE 不知道为什么一直都PE。。。重新敲了一遍过了。。
水过的没啥好说的了 就是注意 读字符串 scanf getchar gets 几个函数的使用就ok了l
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<map>
using namespace std;
int main()
{
char s1[15],s2[15],str[3005];
gets(s1);
map<string,string> m;
while(scanf("%s",s1))
{
if(strcmp(s1,"END")==0)
break;
scanf("%s",s2);
m[string(s2)]=s1;
}
getchar();
gets(str);
while(gets(str))
{
if(strcmp(str,"END")==0) break;
for(int i=0;str[i];++i)
{
if(str[i]<'a' || str[i]>'z')
{
printf("%c",str[i]);
continue;
}
int j;
for(j=0;str[i]>='a' && str[i]<='z' ;++i,++j)
{
s1[j]=str[i];
}
i--;
s1[j]='\0';
if(m.find(string(s1))!=m.end())
printf("%s",m[string(s1)].c_str());
else
printf("%s",s1);
}
printf("\n");
}
return 0;
}