MBCS で std::string 関数を使用したことのある人はいますか? たとえば、CI でこれを行うことができます。
p = _mbsrchr(path, '\\');
しかし、C ++ではこれをやっています:
found = path.find_last_of('\\');
トレイル バイトがスラッシュの場合、find_last_of はトレイル バイトで停止しますか? std::wstring についても同じ質問です。
ある文字をすべて別の文字に置き換える必要がある場合、すべてのスラッシュをバックスラッシュに置き換えるにはどうすればよいでしょうか? 各文字のリード サロゲート バイトをチェックしてから、トレイルをスキップする必要がありますか? 現在、各wcharに対してこれを行っています:
if( *i == L'/' )
*i = L'\\';
ありがとう
編集: David が正しく指摘しているように、マルチバイト コードページを扱う場合には、対処すべきことが他にもあります。Microsoft は、バイト インデックスと MBCS を操作するために_mbclen を使用すると述べています。ANSI コードページで作業する場合、find_last_of を確実に使用できるようには見えません。