说我有一个CString对象strMain =“AAAABBCCCCCCDDBDBBCCCCCCDDDAA”;
我也有两个较小的字符串,例如strSmall1 =“BB”;
strSmall2 =“DD”;
现在,我要替换出现在strMain中的strSmall1(“BB”)和strSmall2(“DD”)之间的所有字符串,用“KKKKKKK”代替
没有正则表达式,有没有办法做到这一点。我不能使用正则表达式,因为禁止将另一个文件添加到项目中。
VC++ / MFC中有没有办法做到这一点?还是您可以向我指出的任何简单算法?
最佳答案
最简单的方法可能是递归地处理替换。搜索开始定界符和结束定界符。如果找到它们,则组合一个新字符串,该字符串由直到起始定界符的字符串组成,然后是替换字符串,然后是在结束定界符之后的其余字符串中递归进行替换的返回结果。
当然,这假定您要替换主字符串中的所有匹配项-如果只想替换第一个,则John Weldon的解决方案(例如)将非常有效。
关于c++ - 如何在VC++/MFC中的字符串的两个子字符串之间替换字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2018244/