有沒有人處理過使用MBD的std :: string函數?例如,在C I可以這樣做:C++對於MBCS使用std :: string函數,對於UTF-16使用std :: wstring函數
p = _mbsrchr(path, '\\');
但在C++我這樣做:
found = path.find_last_of('\\');
如果尾字節是斜線,然後將在尾字節find_last_of停止?對於std :: wstring也是同樣的問題。
如果我需要用另一個字符替換所有的字符,用反斜槓說出所有的正斜槓,那麼正確的方法是什麼?我需要檢查每個字符的領先代理字節,然後跳過蹤跡嗎?現在我這樣做對每個WCHAR:
if(*i == L'/')
*i = L'\\';
感謝
編輯:正如大衛正確地指出,還有更多的處理多字節代碼頁中工作時用。 Microsoft says use _mbclen用於處理字節索引和MBCS。在使用ANSI代碼頁時,我看不到可以可靠地使用find_last_of。
等待是否也適用於MBCS? – loop
是什麼編碼?安思? –
大衛是的,ANSI代碼頁也是如此。因爲我非常確定MBCS可以在跟蹤字節中給出斜線字符。你知道我應該在這種情況下做什麼。並感謝你的回答迄今爲止 – loop