c++ 单词转换 map对象

#include <map>
#include <sstream>
#include <fstream>
#include <iostream>
#include <string>
#include <exception>
using namespace std;

ifstream& openfile(ifstream &in,const string &filename){
	in.close();//close in case it was alrady open
	in.clear();//clear any existing errors
	in.open(filename.c_str());//open the file we were given
	//in要么于指定文件绑定起来了,要么处于错误条件状态
	return in;//condition state is good if open succeeded
}

int main(int argc,char** argv)
{
	map<string,string> trans_map;
	string key,value;
	ifstream map_file;
	if(!openfile(map_file,"transform.txt")){
		throw runtime_error("no transformation file");
	}
	//read the tansformation map and build the map
	while(map_file>>key>>value){
		trans_map.insert(pair<string,string>(key,value));
	}
	ifstream input;
	if(!openfile(input,"source.txt")){
		throw runtime_error("no input file");
	}
	string line;//hold each line from the input
	//read the text to transform it a line at a time
	while(getline(input,line)){
		istringstream stream(line); //read the line a word at a time
		string word;
		//读字符串流
		bool lineFirst=true;//controls whether a space is printed
		while(stream>>word){
			//ok:the actual mapwork,this part is the heart of the program
			map<string,string>::const_iterator iter=trans_map.find(word);
			if(iter!=trans_map.end()){
				//replace it by the transformation value in the map
				word=iter->second;
			}
			if(lineFirst){
				cout<<word;
				lineFirst=false;
			}else{
				cout<<" "<<word;//print space between words;
			}
		}
		cout<<endl;//done with this line of input
	}
	return 0;
}

transform.txt文件内容:

em them
cuz because
gratz grateful
i I
nah no
pos	supposed
sez said
tanx thanks
wuz was

source.txt文件内容:

nah i sez tanx cuz i wuz pos to
not cuz i wuz gratz

程序运行输出:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-06 03:51:12

c++ 单词转换 map对象的相关文章

C++自学笔记_单词转换map对象_《C++ Primer》

今天在干<C++ Primer>第10章的时候似乎遇到了一点小瓶颈,翻回第8章吃了顿回头草.所以,老话说得好:欠下的总是要还滴 :) 一个小程序,很简单:单词转换程序:程序输入两个文件,第一个文件包括了若干单词对,没对的第一个单词将出现在输入的字符串中,而第二个单词 则是用于输出.本质上,这个文件提供的是单词转化的集合——在遇到第一个单词时,应该将之替换为第二个单词.第二个文件则提供了与要转换的文本. 打个比方:如果单词转换文件的内容为: 而要转换的文本是: Code: #include &l

记一次踩坑 Gson转换map对象时 Integer类型自动转换成Double类型

之前一直使用json转换map对象,因为公司统一使用gson,我按照网上转换map对象的方式转换: Map<String, Object> params = gson.fromJson(gson.toJson(payMentResultDto), Map.class); 结果对象里Integer类型自动变成double类型... 解决办法: 网上大致有俩种,1.修改源码(能力达不到)2.增加适配器 我找了一下,解决办法有俩种(比较实用) 1.网上看到的(自定义类型适配器),亲测可用 //这俩段

Map对象转换成Json格式的String字符串

1 //action处理页面发来的String,put到map转换成Json格式的String字符串 2 @RequestMapping("/seleteOaOrder") 3 @ResponseBody 4 public Object seleteOaOrder(String param){//param = "小明"; 5 System.out.println("+++++++++++++++++param:"+param); 6 if(pa

转换复杂的JSON对象为 Map对象

最近项目需要跟客户对接一个webservice接口,客户那传json串过来,属于比较复杂的json串,这里跟大家分享下我项目中所用的解析方法: 该方法需要以下jar package com.test; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import net.sf.json.JSON

JSON字符串转换成Map对象

页面向后台action传递一个json字符串,需要将json字符串转换成Map对象 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import net.sf.json.JSONObject; public Map<String, String> toMap(Object object) { Map<String, String> data = new HashMap<Str

最短路径算法-Dijkstra算法的应用之单词转换(词梯问题)

一,问题描述 在英文单词表中,有一些单词非常相似,它们可以通过只变换一个字符而得到另一个单词.比如:hive-->five:wine-->line:line-->nine:nine-->mine..... 那么,就存在这样一个问题:给定一个单词作为起始单词(相当于图的源点),给定另一个单词作为终点,求从起点单词经过的最少变换(每次变换只会变换一个字符),变成终点单词. 这个问题,其实就是最短路径问题. 由于最短路径问题中,求解源点到终点的最短路径与求解源点到图中所有顶点的最短路径复

dom4j将xml转换成对象

package test; import java.lang.reflect.Field; import java.util.HashMap; import java.util.List; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.tree.DefaultAttribute; public

将json格式的字符串解析成Map对象

/** * 将json格式的字符串解析成Map对象 <li> * json格式:{"name":"admin","retries":"3fff","testname" * :"ddd","testretries":"fffffffff"} */ private static HashMap<String, String> t

java中将list、map对象写入文件

链接地址:http://blog.sina.com.cn/s/blog_4a4f9fb50101p6jv.html 推荐:凤爪女瓜子男怪象该谁反思伦敦房价为什么持续暴涨 × wvqusrtg个人中心发博文消息 doudouhe的博客 http://blog.sina.com.cn/dechuan608hewei [订阅][手机订阅] 首页博文目录图片关于我 个人资料 doudouhe 微博 加好友发纸条 写留言加关注 博客等级: 博客积分:842 博客访问:222,144 关注人气:34 获赠金