蒜头君最近在上翻译专题课,教授丢给了他一本字典和一本蒜厂秘籍原稿。
字典包括蒜厂秘籍文字,和对应的英文解释。
蒜头君需要把蒜厂秘籍原稿翻译成英文稿,达成翻译家伟业。
输入格式
字典部分以START
开始,以END
结束。
中间部分每行两个单词,第一个是英文,第二个是蒜厂秘籍文字,以单个空格隔开。
接下来是历史书部分,同样以START
开始,以END
结束。
历史书包含若干行文本,如果其中的单词(由连续的英文字母组成)在字典上出现过,且是蒜厂秘籍文字,则把它替换成英文;否则,保留该单词,也保留所有非英文字母的特殊符号。文本长度不超过1000010000。
输出格式
原稿翻译后的文本。
样例输入
START
love abc
you dddd
END
START
i abc dddd!
END
样例输出
i love you!这道题复杂的地方在于:读取空白字符:空格、制表符等等,而且输出。
#include<bits/stdc++.h>
using namespace std;
int main()
{
map<string,string> a;
string s;
cin>>s;
while(s!="END")
{
cin>>s;
string val;
cin>>val;
a[val]=s;
}
getchar();
char b[10005];
while(gets(b))
{
if(strcmp(b,"END")==0) break;
string tmp;
for(int i=0;i<strlen(b);i++)
{
if(('a'<=b[i]&&'z'>=b[i])||('A'<=b[i]&&b[i]<='Z'))
{
tmp+=b[i];
}
else
{
if(a.count(tmp)) cout<<a[tmp];
else cout<<tmp;
cout<<b[i];
tmp="";
}
}
if(tmp!="")
{
if(a.count(tmp)) cout<<a[tmp];
else cout<<tmp;
}
cout<<endl;
}
return 0;
}
原文链接: https://www.cnblogs.com/superxuezhazha/p/6393934.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/249307
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!