有没有人处理过为 MBCS 使用 std::string 函数?例如在 CI 中可以这样做:
p = _mbsrchr(path, '\\');
但在 C++ 中,我正在这样做:
found = path.find_last_of('\\');
如果尾随字节是斜线,那么 find_last_of 会在尾随字节处停止吗?对于 std::wstring 也是同样的问题。
如果我需要用另一个字符替换所有一个字符,请用反斜杠说所有正斜杠,这样做的正确方法是什么?我是否必须检查每个字符的前导代理字节然后跳过线索?现在我正在为每个 wchar 执行此操作:
if( *i == L'/' )
*i = L'\\';
谢谢
编辑:正如大卫正确指出的那样,在使用多字节代码页时需要处理更多。微软表示使用 _mbclen处理字节索引和 MBCS。在使用 ANSI 代码页时,我似乎无法可靠地使用 find_last_of。