如何替换字符串中出现的所有字符?

如何替换字符串中出现的所有字符?

中的其他字符替换所有出现的字符的有效方法是什么?std::string?


慕莱坞森
浏览 1221回答 3
3回答

眼眸繁星

问题集中在character替换,但是,正如我发现这个页面非常有用(特别是康拉德),我想分享一下这个更广义的实现,它允许处理substrings此外:std::string&nbsp;ReplaceAll(std::string&nbsp;str,&nbsp;const&nbsp;std::string&&nbsp;from,&nbsp;const&nbsp;std::string&&nbsp;to)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;size_t&nbsp;start_pos&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;while((start_pos&nbsp;=&nbsp;str.find(from,&nbsp;start_pos))&nbsp;!=&nbsp;std::string::npos)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str.replace(start_pos,&nbsp;from.length(),&nbsp;to); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_pos&nbsp;+=&nbsp;to.length();&nbsp;//&nbsp;Handles&nbsp;case&nbsp;where&nbsp;'to'&nbsp;is&nbsp;a&nbsp;substring&nbsp;of&nbsp;'from' &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;str;}用法:std::cout&nbsp;<<&nbsp;ReplaceAll(string("Number&nbsp;Of&nbsp;Beans"),&nbsp;std::string("&nbsp;"),&nbsp;std::string("_"))&nbsp;<<&nbsp;std::endl;std::cout&nbsp;<<&nbsp;ReplaceAll(string("ghghjghugtghty"),&nbsp;std::string("gh"),&nbsp;std::string("X"))&nbsp;<<&nbsp;std::endl;std::cout&nbsp;<<&nbsp;ReplaceAll(string("ghghjghugtghty"),&nbsp;std::string("gh"),&nbsp;std::string("h"))&nbsp;<<&nbsp;std::endl;产出:豆子数xjxxgtXty赫赫加斯蒂编辑:以上内容可以更合适的方式实现,如果您需要考虑性能,请不要返回任何内容(void)并直接在字符串上执行更改str作为论据,通过按地址而不是按价值计算..这将避免无用和昂贵的原始字符串副本,同时返回结果。你说了算那.。代码:static&nbsp;inline&nbsp;void&nbsp;ReplaceAll2(std::string&nbsp;&str,&nbsp;const&nbsp;std::string&&nbsp;from,&nbsp;const&nbsp;std::string&&nbsp;to){ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Same&nbsp;inner&nbsp;code... &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;No&nbsp;return&nbsp;statement}希望这对其他人有帮助.。
打开App,查看更多内容
随时随地看视频慕课网APP