Good Good code,Day Day up
PearLi's Blog
C++博客
首页
新随笔
联系
聚合
管理
统计
随笔 - 50
文章 - 42
评论 - 147
引用 - 0
留言簿
(6)
给我留言
查看公开留言
查看私人留言
随笔分类
Algorithm(5)
(rss)
asp.net(3)
(rss)
C#/.net(3)
(rss)
C++ (22)
(rss)
DSP
(rss)
Linux/Unix (3)
(rss)
perl(2)
(rss)
Translate(2)
(rss)
windows kernel(4)
(rss)
读书杂记(2)
(rss)
文章分类
Algorithm(2)
(rss)
Batch processing(2)
(rss)
C++(20)
(rss)
CUDA
(rss)
DSP(1)
(rss)
Encode&Decode
(rss)
Linux/Unix(10)
(rss)
MFC
(rss)
Version control(1)
(rss)
windows kernel(5)
(rss)
WorkDiary
(rss)
雷达(3)
(rss)
心灵点滴,兼修内外
(rss)
Link
Google Earth Watch
Ntdebugging Blog
搜索
积分与排名
积分 - 162617
排名 - 161
最新评论
1. re: C++堆栈祥解
hao
--李云涛
2. re: 对于c++中常量成员函数,返回常量引用,const_cast的总结[未登录]
{ return (isbn rhs.isbn);}
这里是不是掉东西了?前面的isbn表示什么?
--gong
3. re: 详解virtual table
@xxx
支持,作者怎么还不改过来,怪不得程序读起来怪怪的
--ntwarren
4. re: vmware桥接方式的设置
还是不行啊
--topin
5. re: MSVC++ 对象内存模型深入解析与具体应用 (二)
如果把内存布局画成图就更好了,像《Inside the C++ Object Model》那样。感谢楼主的文章。学习了
--刘伟
阅读排行榜
1. WTL---WxWidget---MFC 何去何从(13964)
2. 详解virtual table(8699)
3. cygwin 使用 (6536)
4. windows session机制深入解析(上)(6413)
5. C++堆栈祥解(5259)
评论排行榜
1. WTL---WxWidget---MFC 何去何从(25)
2. 写了一个关闭电脑屏幕的服务程序(15)
3. 再谈拷贝构造函数(Copy Constructor Function)(12)
4. cygwin 使用 (10)
5. 寻找k大(10)
STL写的字符替换程序
最近看关联容器相关章节,写了以下程序,作用是先从传入参数的第一个文件中读入键值对,key是目标字串,mapped是要替换的字串,然其后传入文件里的相关字串
1
#include
<
map
>
2
#include
<
iostream
>
3
#include
<
sstream
>
4
#include
<
fstream
>
5
#include
<
string
>
6
#include
<
stdexcept
>
7
using
namespace
std;
8
int
9
main(
int
args,
char
*
argv[])
10
{
11
try
12
{
13
if
(args
<
3
)
14
throw
runtime_error(
"
缺少参数,请输入。。。
"
);
15
ifstream fin;
16
fin.open(argv[
1
]);
17
if
(
!
fin) //检查文件是否被正确打开
18
throw
runtime_error(
"
map file not found
"
);
19
string
keystr,mapstr;
20
map
<
string
,
string
>
mappedctner;
21
while
(fin
>>
keystr
>>
mapstr)
22
{
23
mappedctner[keystr]
=
mapstr;//采用下标引用的方法插入元素
24
}
25
for
(
int
cnt(
2
);cnt
!=
args;cnt
++
)
26
{
27
fin.close();
28
fin.clear();
29
fin.open(argv[cnt]);
30
stringstream sstr;
31
sstr
<<
"
target file
"
<<
cnt
-
1
<<
"
not found
"
<<
endl;//格式化字串
32
if
(
!
fin)
33
throw
runtime_error(sstr.str());//str()成员存储输入的文本对象
34
map
<
string
,
string
>
::iterator itr;
35
while
(fin
>>
keystr)
36
{
37
if
((itr
=
mappedctner.find(keystr))
!=
mappedctner.end())
38
keystr
=
itr
->
second;//找到相关字串,利用迭代器引用second的mappedvalue类型替换
39
cout
<<
keystr
<<
"
"
;
40
}
41
cout
<<
endl;
42
}
43
}
44
catch
(runtime_error e)
45
{
46
cout
<<
e.what()
<<
endl;
47
}
48
catch
(ios_base::failure e)
49
{
50
cout
<<
e.what()
<<
endl;
51
}
52
return
0
;
53
}
54
posted on 2008-12-03 17:27
pear_li
阅读(633)
评论(0)
编辑
收藏
引用
所属分类:
C++
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
MSVC++ 对象内存模型深入解析与具体应用 (三)
从小函数实现看应聘者的编程素质(atoi.strcmp...)
A*算法实现
简版 容器vector 实现
0-1背包问题
八皇后问题一解--用几何方法简化编程问题
写了一个关闭电脑屏幕的服务程序
用之前写的物理模拟引擎编写了个小游戏
vc也搞for each
对象与对象的类型信息----获取对象的RTTI信息
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理