《ACM程序设计》书中题目B-2
2017-03-15 18:41
253 查看
(欢迎阅读我的博客,如发现错误或有建议请评论留言,谢谢。)
题目要求:
自己定义一个词典,每一个英文单词都有一个对应的自定义字符串(中间用一个空格相隔),定义完后是一个空行,然后接下来的每一行输入一个英文单词,翻译为定义词典中的字符串,如果没有对应的字符串输出“eh”。
题目思路:
利用map定义单词对应关系,用strcmp比较输入单词和字典中的单词,若对应则输出自定义字符串。
细节处理:
判断空格和空行来控制输入,利用strncpy来copy字符串的一部分分别赋给map中的两个变量;
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
map<string,string>m;
char a[15],b[15],c[30];
while(gets(c))
{
if(strcmp(c,"")==0)break;//用来判断空行
int i,j;
j=strlen(c);
for(i=0;i<j;i++)
{
if(c[i]==' ')break;
}
strncpy(a,c,i);
a[i]='\0';
strncpy(b,c+i+1,j-i);
b[j-i]='\0';
m[b]=a;
}
while(cin>>b)
{
if(m[b]=="")//用来判断是否存在这个对应关系
cout<<"eh"<<endl;
else cout<<m[b]<<endl;
}
return 0;
}
题目要求:
自己定义一个词典,每一个英文单词都有一个对应的自定义字符串(中间用一个空格相隔),定义完后是一个空行,然后接下来的每一行输入一个英文单词,翻译为定义词典中的字符串,如果没有对应的字符串输出“eh”。
题目思路:
利用map定义单词对应关系,用strcmp比较输入单词和字典中的单词,若对应则输出自定义字符串。
细节处理:
判断空格和空行来控制输入,利用strncpy来copy字符串的一部分分别赋给map中的两个变量;
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
map<string,string>m;
char a[15],b[15],c[30];
while(gets(c))
{
if(strcmp(c,"")==0)break;//用来判断空行
int i,j;
j=strlen(c);
for(i=0;i<j;i++)
{
if(c[i]==' ')break;
}
strncpy(a,c,i);
a[i]='\0';
strncpy(b,c+i+1,j-i);
b[j-i]='\0';
m[b]=a;
}
while(cin>>b)
{
if(m[b]=="")//用来判断是否存在这个对应关系
cout<<"eh"<<endl;
else cout<<m[b]<<endl;
}
return 0;
}
相关文章推荐
- ACM程序设计题目 Problem. J-10
- ACM程序设计题目 Problem O-15
- 《ACM程序设计》书中题目M 第十三题 查找二倍数有几对
- 《ACM程序设计》书中题目T 第二十题 找底数
- 《ACM程序设计》书中题目Y 第二十五题 看和说
- 《ACM程序设计》书中题目Y(几个几@v@~~)
- 《ACM程序设计》书中题目W(让草坪变美丽吧,Tom!)
- 《ACM程序设计》书中题目N-14
- 《ACM程序设计》书中题目X 第二十四题 电话号码
- 《ACM程序设计》书中题目 Z
- 《ACM程序设计》书中题目 V
- ACM程序设计题目 Problem P-16(未通过)
- 《ACM程序设计》书中题目 U
- 《ACM程序设计》书中题目 H-08 火星ACM
- 《ACM程序设计》书中题目 M-13 arithmetic competency program
- 《ACM程序设计》书中题目 J
- 《ACM程序设计》书中题目N(倒序相加)
- 《acm程序设计》书中题目U-21
- 《ACM程序设计》书中题目 X - 24 打电话
- 《ACM程序设计》书中题目 Z - 26 名字缩写