私が話しているCStringタイプは、Microsoftのです。
私は2つの方法を試しました。
方法1)msdn WebサイトにあるRemove()およびReplace()関数を使用し、Visualc++は次のように述べています。Error:argument of type "const char*" is incompatible with argument of type "wchar_t"
具体的には私のコードは次のとおりです。
#include <cstring>
CString sTmp= sBody.Mid(nOffset);
CString sFooter= L"https://" + sTmp.Mid(0, nEnd );
sFooter.Remove("amp;");
また、他の「a」が削除されるため、一度に1つの文字を削除したくありません。
何らかの理由で、sFooterをstd :: stringに変換すると、ランダムな「amp;」が文字列に表示されますが、そこにあるべきではありません。
私はsFooterを次のようにstd::stringに変換しています:
CT2CA p (sFooter);
string str (p);
方法2)CStringをstd :: stringに変換してから、erase()とremove()を使用して「amp;」を削除します。
#include <string>
#include <algorithm>
sFooter2.erase(std::remove(sFooter2.begin(), sFooter2.end(), "amp;"), sFooter2.end());
しかし、Visual Studioの出力はこれを示しています:http://pastebin.com/s6tXQ48N