2

CStringオブジェクトがMFC特定の文字列で終わっているかどうかを確認する必要があります。

boost::algorithm文字列操作を目的とした多くの関数があり、ヘッダーboost/algorithm/string/predicate.hppでその目的に使用できることを知っています。

私は通常、このライブラリをstd::string. このライブラリを と一緒に使用する便利な方法を知っていますCStringか?

ライブラリがテンプレート引数として使用される他の文字列ライブラリでも使用できるジェネリックであることは知っていますが、この機能をCString.

可能であれば、それを手伝ってもらえますか?

4

2 に答える 2

2

Boost String Algorithms Libraryによると、「サポートされている文字列型の正確な仕様を確認するには、設計の章を参照してください」、特に「文字列型の最初の要件は、Boost.Rangeを使用してアクセスできる必要があることです」と述べています。一番下に、Shunsuke Sogame によって書かれたMFC/ATLの実装に注意してください。これにより、ライブラリを組み合わせることができます。

編集:以下のコメントで正規表現について言及しているため、これが本当に必要なすべてです(Unicodeビルドを想定):

CString inputString;
wcmatch matchGroups;
wregex yourRegex(L"^(.*)$"), regex::icase);
if (regex_search(static_cast<LPCWSTR>(inputString), matchGroups, yourRegex))
{
    CString firstCapture = matchGroups[1].str().c_str();
}

ライブラリ間でそれらを渡すために、さまざまな文字列型を生のポインターに削減する方法に注意してください。yourRegex大文字と小文字を区別しないかどうか、またはアンカーについて明示的であるかどうかなど、私の工夫を要件に置き換えてください。

于 2010-09-17T09:27:47.430 に答える
0

手間を省いてCStringT::Rightを使用してみませんか?

于 2010-09-17T08:31:49.037 に答える