1

我对您在 c/c++ find、find_first_of、replace、strpos、grep 和 concat 方面的经验感兴趣。替换字符串中内容的最有效方法是什么。

  • 每个字符串都不会出现多次字符串替换
  • 结果字符串的长度与原始字符串不同。
  • 原始和最终字符串将少于 2000 个字符
  • 大约 25 个字符串替换
  • 每个干草堆的针头保持一致

生病测试他们,只是在这一点上收集选项。

这是手头的应用程序:需要大量按摩的 url 字符串。IE。几乎所有参数都会改变,尽管值将保持不变。从

param1=this&param2=string&param3=needs&param4=a&param5=lot ... &param25=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 或其他。并且构建一个新字符串也是一种选择。

谢谢

4

0 回答 0