1

c/c++ find、find_first_of、replace、strpos、grep、および concat の経験に興味があります。文字列のコンテンツを置き換える最も効率的な方法は何ですか。

  • 文字列ごとに複数回出現する文字列置換はありません
  • 結果の文字列は、元の文字列と同じ長さではありません。
  • 元の文字列と最終的な文字列は 2000 文字未満になります
  • 約25回の弦交換
  • 針は干し草の山ごとに一貫したままです

この時点でオプションを収集するだけで、それらをテストすることはできません。

これが当面のアプリケーションです: 広範なマッサージが必要な URL 文字列です。すなわち。値は同じままですが、ほとんどすべてのパラメータが変更されます。から

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