MAP函数的用法

你刚从滑铁卢搬到一个大城市。这里的人讲一种难以理解的外语方言。幸运的是,你有一本字典来帮助你理解它们。Input输入内容包括多达100000个字典条目,后面是一个空行,后面是一条多达100000个单词的消息。每个字典条目都是一行,包含一个英语单词,后跟一个空格和一个外语单词。字典里没有外文词出现过一次。信息是外语中的一系列单词,每行一个单词。输入中的每个单词都是最多10个小写字母的序列。Output输出是翻译成英文的消息,每行一个字。字典中没有的外来词应译为“eh”。
Sample Inputdog ogday
cat atcay
pig igpay
froot ootfray
loops oopslay

atcay
ittenkay
oopslay
Sample Outpu
tcat
eh
loops

代码实现

#include<iostream>
#include<map>
#include<cstdio>
#include<string>
using namespace std;
map<string,string>mp;
int main() {
 char str1[15],str2[15],d[100];
 while(gets(d)&&d[0]!='\0') {
  sscanf(d, "%s %s",&str1,&str2);
  mp[str2]=str1;
 }
 char c[15];
 while(cin>>c) {
  if(mp[c].size()==0)  cout<<"eh"<<endl;
  else
   cout<<mp[c]<<endl;
 }
 return 0;
 }

sscanf输入的用法
https://www.cnblogs.com/hejing-swust/p/7793958.html)
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).
Input
输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.
注意:本题只有一组测试数据,处理到文件结束.
Output
对于每个提问,给出以该字符串为前缀的单词的数量.
Sample Input
banana
band
bee
absolute
acm

ba
b
band
abc
Sample Output
2
3
1
0

代码实现

#include<bits/stdc++.h>
using namespace std;
map<string,int>mp;
int main() {
	char str[20];
	while(gets(str)) {
		int len;
		len=strlen(str);
		if(len==0)
			break;
		else
			for(int i=len; i>0; i--) {
				str[i]='\0';
				mp[str]++;
			}
	}
	char c[15];
	while(gets(c))
		printf("%d\n",mp[c]);



	return 0;
}

map函数讲解
https://blog.csdn.net/tsam123/article/details/85222957)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值