POJ 2503 Babelfish

本文介绍了一种使用C++中的map容器处理字典翻译的方法。通过输入一系列的单词对,建立英语到未知外语的翻译映射。文章提供了一个具体的实现示例,并解决了输入时的特殊字符问题。


Description

You have just moved from Waterloo to a big city. The people here speak an incomprehensible dialect of a foreign language. Fortunately, you have a dictionary to help you understand them.

Input

Input consists of up to 100,000 dictionary entries, followed by a blank line, followed by a message of up to 100,000 words. Each dictionary entry is a line containing an English word, followed by a space and a foreign language word. No foreign word appears more than once in the dictionary. The message is a sequence of words in the foreign language, one word on each line. Each word in the input is a sequence of at most 10 lowercase letters.

Output

Output is the message translated to English, one word per line. Foreign words not in the dictionary should be translated as "eh".

Sample Input
dog ogday
cat atcay

pig igpayfroot ootfrayloops oopslayatcayittenkayoopslay

Sample Output
cat
eh
loops


这题主要是字符串输入和map容器的使用;

问题:1.我们输入的时候应该是很多的单词,而且要求每一个单词里面有空格,这有要我们再输入的时候不能忽略空格;

2.我们需要根据后面的那一单词找到前面的那一个单词;

根据上面两个我们可以发现这里用一个map容器会简单很多;

#include <iostream>
#include <string>
#include <map>
using namespace std;
int main()
{
 map<string,string> str;
 char ch[21];
 int t;
 string str2,first,second;
 while(gets(ch)&&strlen(ch))//如果我们输入的为空就结束输入(这就是题目要求的输入要用一个换行隔开)
 {
  string str1=ch;
  t=str1.find(' ');
  first=str1.substr(0,t);//记录前一段单词;
  second=str1.substr(t+1);//记录后一段单词;
  str[second]=first;//后一段单词作为下标,前一段单词作为值;

 }
 while(cin>>str2)
  {
   if(str[str2].size()!=0)
    cout<<str[str2]<<endl;
   else
    cout<<"eh"<<endl;
  }
 return 0;
}
需要注意的是不要把第二个while写在第一个while里面去了!!!!!!

根据原作 https://pan.quark.cn/s/0ed355622f0f 的源码改编 野火IM解决方案 野火IM是专业级即时通讯和实时音视频整体解决方案,由北京野火无限网络科技有限公司维护和支持。 主要特性有:私有部署安全可靠,性能强大,功能齐全,全平台支持,开源率高,部署运维简单,二次开发友好,方便与第三方系统对接或者嵌入现有系统中。 详细情况请参考在线文档。 主要包括一下项目: 野火IM Vue Electron Demo,演示如何将野火IM的能力集成到Vue Electron项目。 前置说明 本项目所使用的是需要付费的,价格请参考费用详情 支持试用,具体请看试用说明 本项目默认只能连接到官方服务,购买或申请试用之后,替换,即可连到自行部署的服务 分支说明 :基于开发,是未来的开发重心 :基于开发,进入维护模式,不再开发新功能,鉴于已经终止支持且不再维护,建议客户升级到版本 环境依赖 mac系统 最新版本的Xcode nodejs v18.19.0 npm v10.2.3 python 2.7.x git npm install -g node-gyp@8.3.0 windows系统 nodejs v18.19.0 python 2.7.x git npm 6.14.15 npm install --global --vs2019 --production windows-build-tools 本步安装windows开发环境的安装内容较多,如果网络情况不好可能需要等较长时间,选择早上网络较好时安装是个好的选择 或参考手动安装 windows-build-tools进行安装 npm install -g node-gyp@8.3.0 linux系统 nodej...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值