c++,MFC中字符替换问题
我想把字符串中指定位置的字符给替换掉,该用什么思路呢?我看CString中的函数都是需要指定被替换的字符串而不是位置。总不能用SetAt来一个个替换吧?好麻烦...
我想把字符串中指定位置的字符给替换掉,该用什么思路呢?我看CString中的函数都是需要指定被替换的字符串而不是位置。总不能用SetAt来一个个替换吧?好麻烦
展开
展开全部
你可以用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);
........
(注:以上程序没有编译过,思想类似,你可以试试)
有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);
........
(注:以上程序没有编译过,思想类似,你可以试试)
展开全部
CString替换都是替换指定的字符串跟位置无关的,但现在需要替换指定位置的,你提的是位置信息那是没办法
你可以定义一个map<int,char>将要替换的位置和内容存入的这里
最后便利这个map,这个过程中SetAt(it->first, it->second);就可以了
你可以定义一个map<int,char>将要替换的位置和内容存入的这里
最后便利这个map,这个过程中SetAt(it->first, it->second);就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CString str = _T("asdf");
TCHAR* p = str.GetBuffer();
p[3] = 'a';
str.ReleaseBuffer();
别忘了最后一句。
TCHAR* p = str.GetBuffer();
p[3] = 'a';
str.ReleaseBuffer();
别忘了最后一句。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是要替换字符还是替换字符串?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询