我对您在 c/c++ find、find_first_of、replace、strpos、grep 和 concat 方面的经验感兴趣。替换字符串中内容的最有效方法是什么。
- 每个字符串都不会出现多次字符串替换
- 结果字符串的长度与原始字符串不同。
- 原始和最终字符串将少于 2000 个字符
- 大约 25 个字符串替换
- 每个干草堆的针头保持一致
生病测试他们,只是在这一点上收集选项。
这是手头的应用程序:需要大量按摩的 url 字符串。IE。几乎所有参数都会改变,尽管值将保持不变。从
param1=this¶m2=string¶m3=needs¶m4=a¶m5=lot ... ¶m25=work
至
what=this&method=string&will=needs&work=a&the=lot ... &best=work
我目前使用适用于现有字符串的针/干草堆函数。
void findAndReplace(string& haystack, const string& needle, const string& replace) {
size_t len = needle.size();
if (haystack.size() < len)
return;
size_t pos = haystack.find(needle);
if (pos != string::npos)
haystack.replace(pos, len, replace);
}
我不介意使用 char*、string、streams、grep 或其他。并且构建一个新字符串也是一种选择。
谢谢