首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎么将字符串中的子串替换为事先给定的字符串

2012-04-05 
如何将字符串中的子串替换为事先给定的字符串可能描述不清楚,具体是这样的,读取一个文本文件,将每行中某个

如何将字符串中的子串替换为事先给定的字符串
可能描述不清楚,具体是这样的,读取一个文本文件,将每行中某个子串替换为事先给定的含义字符串,有点类似编码一样,比如说文本文件是这样的
1. 0000 abc
2. 1111 abc
3. 2222 cce
4. 3333 883
abc,cce,883只有几十种可能,并且每种都事先知道是什么含义,最后想输出结果是这样
1. 0000 你好
2. 1111 你好
3. 2222 hi
4. 3333 再见
这种对应关系已经知道了,请问下如何实现这个改变的过程

[解决办法]
CStdioFile,按行读取,替换后写回文件。
str.Replace(L"aaa",L"你好");
[解决办法]

C/C++ code
用数据库最方便了。如果用程序实现,基本思路1.程序启动读出全部对应关系,比如 abc 你好 存入 namemap;namemap 定义为typedef map<string,string,less<string> > DICNAMEMAP;DICNAMEMAP namemap; 。。。。定义一结构typedef struct __INFO {    char col1[128],   char col2[128]   }INFO;2.按行读出文件行内容存储到vector  vector<INFO> rows;用fscnaf读入行内容3.针对读出的行用1进行转码  DICNAMEMAP::iterator it;      it = namemap.find(rows..col2);  //需要转码  if ( it != namemap.end() )     strcpy(rows..col2,(*it).second);
[解决办法]
CFile myFile;
CString fileData;
TCHAR c[5000]={0};//根据你文件的大小来设定数组的大小
char savefile[]="c:\\a.txt";//文件保存的位置
myFile.Open(savefile,CFile::modeReadWrite);
myFile.Read(c,5000);
fileData.Format("%s",c);
fileData.Replace("abc","你好");
myFile.SetLength(0);
myFile.Write(fileData,fileData.GetLength());
myFile.Close();
[解决办法]
replace

热点排行