c/c++ find、find_first_of、replace、strpos、grep、および concat の経験に興味があります。文字列のコンテンツを置き換える最も効率的な方法は何ですか。
- 文字列ごとに複数回出現する文字列置換はありません
- 結果の文字列は、元の文字列と同じ長さではありません。
- 元の文字列と最終的な文字列は 2000 文字未満になります
- 約25回の弦交換
- 針は干し草の山ごとに一貫したままです
この時点でオプションを収集するだけで、それらをテストすることはできません。
これが当面のアプリケーションです: 広範なマッサージが必要な URL 文字列です。すなわち。値は同じままですが、ほとんどすべてのパラメータが変更されます。から
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 などを使用してもかまいません。新しい文字列を作成することもオプションです。
ありがとう