c++,MFC中字符替换问题

我想把字符串中指定位置的字符给替换掉,该用什么思路呢?我看CString中的函数都是需要指定被替换的字符串而不是位置。总不能用SetAt来一个个替换吧?好麻烦... 我想把字符串中指定位置的字符给替换掉,该用什么思路呢?我看CString中的函数都是需要指定被替换的字符串而不是位置。总不能用SetAt来一个个替换吧?好麻烦 展开
 我来答
xiaohuh421
2010-01-15 · TA获得超过904个赞
知道小有建树答主
回答量:897
采纳率:0%
帮助的人:376万
展开全部
你可以用CString类的find函数找到你要替换的串的位置,
有left取你找到的位置左边的串,再加上你想替换的串,然后把他右边的串继续查找,执行以上过程

CString str1="aaaaabbaaaaabbaaa";//比如想把bb换成cc
int pos=str1.Find("bb");
CString str2=str1.Left(pos);
str2+="cc";
int pos2=pos+strlen("bb")-1;
CString str3=str1.Right(pos2);
........
(注:以上程序没有编译过,思想类似,你可以试试)
panelwork
2010-01-15 · TA获得超过615个赞
知道小有建树答主
回答量:562
采纳率:0%
帮助的人:570万
展开全部
CString替换都是替换指定的字符串跟位置无关的,但现在需要替换指定位置的,你提的是位置信息那是没办法

你可以定义一个map<int,char>将要替换的位置和内容存入的这里

最后便利这个map,这个过程中SetAt(it->first, it->second);就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
安心播音
2010-01-15 · TA获得超过1564个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:381万
展开全部
CString str = _T("asdf");
TCHAR* p = str.GetBuffer();
p[3] = 'a';
str.ReleaseBuffer();

别忘了最后一句。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lyj19871108
2010-01-15 · TA获得超过173个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:137万
展开全部
你是要替换字符还是替换字符串?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式