2503 Babelfish:字符串string类+map操作总结

题目大意

你刚从滑铁卢搬到一个大城市。这里的人说一种听不懂的外国方言。幸运的是,你有一本字典可以帮助你理解它们。

输入

输入最多包含100,000个字典条目,后跟一个空白行,然后是一个消息,最多100,000个单词。 每个字典条目都是一行,其中包含一个英文单词,后跟一个空格和一个外语单词。 在词典中,没有外来词出现多次。 消息是外语单词序列,每行一个单词。 输入中的每个单词都是最多10个小写字母的序列。

思路与总结

直接将每一个输入对存到map中输出即可。
各种字符串的题用char*很不方便太菜了 ,还是用string来得比较好

  • string的整行读取:getline(cin, s1),这里不能使用cin.getline
  • string的元素查找:s1.find(""),
  • string的分割与赋值:s2.assign(s1,beginPos,endPos),将s1从begin位置到结束位置-1的串赋予s2。
  • int类型转string s1 = to_string(number)
  • 对map而言,无论是<int,string>还是<string,string>,此时value的默认值是未知的,如果我们没有映射<key,value>,直接读出m[key]是不显示值的,所以需要判断是否有这个映射,使用m.find(key),如果找不到就返回m.end()
#include<iostream>
#include<map>
#include<string>
using namespace std;

map<string, string>m;
string s1, a, b;
int main() {
	while (getline(cin, s1)) {
		//不能使用cin.getline
		if (s1[0] == '\0')break;
		int pos = s1.find(' ');
		//assign函数将s1切成两部分进行赋值
		a.assign(s1, 0, pos);
		b.assign(s1, pos + 1, s1.size());
		m[b] = a;
	}
	string ss;
	while (cin >> ss) {
		if (m.find(ss) != m.end())
			cout << m[ss] << endl;
		else
			cout << "eh" << endl;
	}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我会用中文回复。你说你刚从滑铁卢搬到了一个大城市,这里的人们讲一种难以理解的外语方言。不过,幸运的是,你有一本字典可以帮助你理解他们。希望你能够尽快适应这个新环境,学会这种方言,融入这个城市的生活。加油! ### 回答2: 我最近搬到一个大城市,这里人们讲着一种让我很难理解的外语方言。幸亏我有一本字典帮助我更好地理解他们。 这种新的方言听起来像是一个口音很重的英语,但是它有许多生僻的词汇和用词方式不同于我之前接触过的英语。我很着急,因为我希望能够和这里的人们交流,并更快地适应这里的生活。 然后,我开始利用我的字典。我一页一页地查找着词汇,尝试去理解它们的意思。有时候,我会遇到一些词汇,它们在我的字典里都找不到。但是,通过一些示意动作和肢体语言,我能够大致理解说话者的意思。 随着时间的推移,我开始逐渐熟悉这种新的方言,我也开始更加熟练地使用我的字典。我的机会来到了,我能够和当地人更流畅地交流了,甚至我还能用这种方言去和他们打招呼。这是一种很好的体验,因为那使我更加融入这个城市和这片土地。 通过学习这种方言,我不仅学会了一种新的语言,还更加了解了这个城市和这里人民的文化。我对这里的人民和他们的传统有了更深刻的了解,这使我非常开心。所以,我建议任何来到一种新的地方的人应该尝试学习当地语言,既能够更好地适应这里的生活,也能让你感受到这里的文化和人民。 ### 回答3: 当你搬到一个陌生的城市时,面对一种难以理解的方言可能会使你感到无助。但是,最好的方法是保持开放的心态并准备学习。毕竟,了解当地的文化和语言是融入社区和建立联系的关键。 有一本字典可能是开始理解当地方言的好方法。但是,字典并不是解决问题的唯一方法。在日常生活中,与当地人交流是非常重要的。你可以主动向当地人请教,学习他们使用的词语和听音调,以更好地理解他们所说的话。 另外,通过阅读当地的新闻,听广播和观看电视节目也可以帮助你熟悉当地方言。还可以参加语言学习课程,学习基本的语法和句子构造。 在真正理解当地方言的过程中,还要注意到方言可能会随着地域、文化和社会群体而变化。因此,需要不断学习并适应。 总之,即使刚开始的难度比较大,但通过保持开放的心态和学习的努力,你可以渐渐地理解和使用当地的方言,并逐渐融入这个新的社区。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值