c++primer练习11.33

//实现你自己版本的单词转换程序
#include<iostream>
#include<map>
#include<sstream>
#include<fstream>
using namespace std;
void my_word_transform(ifstream &map_file,ifstream &input);
map<string,string> my_build_map(ifstream &map_file);
const string& my_transform(const string &s,const map<string,string> &m);
int main(int argc,char *argv[]){
	ifstream in1(argv[1]),in2(argv[2]);
	my_word_transform(in1,in2);
	system("pause");

}

void my_word_transform(ifstream &map_file,ifstream &input){
	auto my_map=my_build_map(map_file);
	string text;//du qu mei hang shu ru
	while(getline(input,text)){
		istringstream stream(text);
		string word;
		bool first_word=true;
		while(stream>>word){
			if(first_word)
				first_word=false;
			else 
				cout<<' ';
			cout<<my_transform(word,my_map);}
		cout<<endl;
	}
}
map<string,string> my_build_map(ifstream &map_file){
	map<string,string> my_map;
	string key;
	string value;
	while(map_file>>key&&getline(map_file,value)){
			my_map[key]=value.substr(1);
		}
	return my_map;
}
const string& my_transform(const string &s,const map<string,string> &m){
	auto find=m.find(s);
	if(find!=m.end())
		return find->second;
	else
		return s;

}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值