C++POJ2503BabelFish

C++POJ2503BabelFish

问题描述:

你刚从滑铁卢搬到大城市。这里的人们讲一种难以理解的外语方言。幸运的是,你有一本字典来帮助你理解它们。

输入:
输入包括多达 100,000 个字典条目,然后是空白行,然后是多达 100,000 个单词的消息。每个字典条目都是一行包含一个英语单词,然后是一个空间和一个外语单词。字典中每个外来词只出现一次。信息是外语中的一系列单词,每行一个单词。输入中的每个单词最多是 10 个小写字母的序列。

输出:
输出是翻译成英文的消息,每行一个单词。字典中未写的外来词应翻译为"eh"。

示例输入

dog ogday
cat atcay
pig igpay
froot ootfray
loops oopslay

atcay
ittenkay
oopslay
样本输出

cat
eh
loops
提示

建议使用大量输入和输出、扫描和打印。

解决方案:

#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
int main()
{
	map<string, string>babelfish;
	string s1, s2;
	char s[22];
	while (gets_s(s) != NULL&&s[0] != '\0')
	{
		/*
		gets_s()函数:从键盘上输入字符,直至接受到换行符或EOF时停止,
		并将读取的结果存放在buffer指针所指向的字符数组中。
		*/
		int i;
		for (i = 0; i < strlen(s); i++)
			if (s[i] == ' ')break;
		s1 = string(&s[0], &s[strlen(s)]).substr(0, i);
		s2= string(&s[0], &s[strlen(s)]).substr(i+1);
		babelfish[s2] = s1;
	}
	while (gets_s(s) != NULL&&s[0] != '\0')
	{
		if (babelfish.find(s) != babelfish.end())
			cout << babelfish[s] << endl;
		else cout << "eh" << endl;
	}
	system("pause");//为了观察结果用该语句,POJ提交时去除该语句
	return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值