题目链接:
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=24031
题意:
问键是否存在。存在输出键值,否则输出eh
思路:
STL的MAP复习。插入使用数组方式,判断存不存在用mm.count(data),存在返回1,不存在返回0。
顺便发现了get(data)输入一行时,如果该行为空行,则data = “\0”。
源码:
#include <cstdio>
#include <cstring>
#include <cmath>
#include <string>
#include <algorithm>
#include <iostream>
#include <map>
using namespace std;
map<string,string> mm;
char data[40];
char str1[20],str2[20];
int main()
{
mm.clear();
while(gets(data) != NULL){
if(data[0] == '\0')
break;
// printf("data = %s\n",data);
int i;
for(i=0; i<strlen(data); i++){
if(data[i] == ' ')
break;
str1[i] = data[i];
str1[i+1] = '\0';
}
i++;
int now = 0;
for(;i<strlen(data);i++){
str2[now++] = data[i];
str2[now] = '\0';
}
mm[str2] = str1;
// printf("str1 = %s\nstr2 = %s balala\n",str1,str2);
// getchar();
}
while(scanf("%s",data) != EOF){
if(mm.count(data))
cout<<mm[data]<<endl;
else
printf("eh\n");
}
return 0;
}