// 11_33.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include<iostream>
#include<string>
#include<map>
#include<sstream>
#include<fstream>
using namespace std;
//用map文件来建立一个要转换的字符串对应的转换成的字符串
map<string, string> buildMap(ifstream &map_file)
{
map<string, string> ma;
string word;
string convert;
while (map_file >> word&&getline(map_file, convert))
{
ma[word] = convert.substr();
}
return ma;
} //返回一个字符串在map中对应的字符串,如果没有,则返回字符串本身
const string& transform(const string &s, const map<string, string> &m)
{
auto ite = m.find(s);
if (ite != m.end())
return ite->second;
else return s;
} //单词转换函数,输入一个转换文件,和一个输入文件,打印转换后的文本
void word_transform(ifstream &map_file, ifstream &input)
{
map<string, string> ma = buildMap(map_file);
string line, word;
while (getline(input,line))
{
istringstream is(line);
bool wordtag = true;
while (is >> word)
{
if (wordtag)
wordtag = false;
else cout << " ";
cout << transform(word, ma);
}
cout << endl;
}
} int main()
{
word_transform(ifstream("D:\\file\\11.3.6_map.txt"), ifstream("D:\\file\\11.3.6_input.txt"));
return ;
}

C++primer 练习11.33:实现你自己版本的单词转换程序的更多相关文章

  1. Ubuntu 10.10, 11.04, 11.10这三个版本无法从优盘启动

    问题:Ubuntu 10.10, 11.04, 11.10这三个版本无法从优盘启动 解决:从U盘启动安装的时候,会卡住不动.搞定办法相当简单,修改syslinux/syslinuxfg文件:将defa ...

  2. 【C++ Primer 第11章 练习答案】2. 关联容器操作

    11.3.1节练习 [练习11.16]代码 map<int, int> m; auto iter = m.begin(); iter ->second = ;

  3. 【C++ Primer 第11章 练习答案】2. 关联容器概述

    11.2.1节练习 [练习11.7]代码: #include<iostream> #include<string> #include<vector> #includ ...

  4. [C++ Primer] : 第11章: 关联容器

    目录 使用关联容器 关联容器概述 关联容器操作 无序容器 使用关联容器 关联容器与顺序容器有着根本的不同: 关联容器中的元素是按关键字来保存和访问的, 按顺序容器中的元素是按它们在容器中的位置来顺序保 ...

  5. vector的坑——C++primer练习6.33总结

    说来惭愧,一道简单的对vector递归的题目写了一个多小时,最后还是请教了大神才改出来. 首先贴上原代码: void return_vector(vector<int>::iterator ...

  6. 学习C++.Primer.Plus 11 使用类

    1.操作符重载 重载操作符的几个限制: a)         重载的至少有一个操作数是用户定义的类型,这将防止用户为标准类型重载操作符. b)         不能违反操作符原有来的句法规则. c)  ...

  7. hdu 1050 (preinitilization or postcleansing, std::fill) 分类: hdoj 2015-06-18 11:33 34人阅读 评论(0) 收藏

    errors, clauses in place, logical ones, should be avoided. #include <cstdio> #include <cstr ...

  8. 【C++ Primer 第11章】4. 无序容器

    一.介绍 1. Hashtable和bucket 由于unordered_map内部采用的hashtable的数据结构存储,所以,每个特定的key会通过一些特定的哈希运算映射到一个特定的位置,我们知道 ...

  9. 【C++ Primer 第11章】2. 关联容器操作

    练习答案 一.访问元素 关联容器额外类型别名  key_type 此容器类型的关键字类型 mapped_type 每个关键字关联的类型,只 适用于map mapped_type 对于set,与key_ ...

随机推荐

  1. CSS之background属性

    css背景是个很有意思的东西,可设置 背景色:background-color 背景图:backgoround-image 背景图显示相对位置:background-position,正数图片往右下移 ...

  2. 大象数据库SQL存储过程(函数)

    -- Function: antifraudjudge(character varying) -- DROP FUNCTION antifraudjudge(character varying); C ...

  3. Hive(二):windows hive ODBC 安装

    针对Windows 32位和64位的系统对应有多个版本的 Hive ODBC Connector, 在安装的过程中,版本必须完全匹配(即:32位的 connector 只能在32位的系统运行,64位的 ...

  4. Android 文件的选择

    Android 文件的选择 打开文件选择器 private void showFileChooser() { Intent intent = new Intent(Intent.ACTION_GET_ ...

  5. C# & SQL Server大数据量插入方式对比

    以下内容大部分来自: http://blog.csdn.net/tjvictor/article/details/4360030 部分内容出自互联网,实验结果为亲测. 最近自己开发一个向数据库中插入大 ...

  6. 动态SQL之标签

    本节主要讲了动态SQL的几个标签:where set trim where: 检出where语句的最前面是否含有AND和一个空格 或者 or和一个空格 ,如果有的话删除 set: 检出set的最后是否 ...

  7. 监控Linux性能的18个命令行工具

    监控 Linux 性能的 18 个命令行工具 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保 ...

  8. 2015年8月TIOBE编程语言排行榜

    名副其实的月经贴.

  9. jfinal配置rails的数据表

    鉴于rails的部署太可怕,所以有了使用rails的建表工具和migration,用jfinal来开发的想法,在此贴一下需要注意的地方 maven配置 <dependency> <g ...

  10. Sublime text2用户自定义配置

    [{ "keys": ["ctrl+d"], "command": "run_macro_file", "ar ...