std::wstring 对比 std::string:何时在 C++ 中使用 Unicode 和多字节字符串?
你好!我最近开始学习 C++,遇到了选择 std::string 和 std::wstring 的问题。似乎这两种类型都用于处理文本,但我不明白它们的区别以及何时使用哪种。
这是一个简单的例子:我编写了一个需要处理俄文字符的程序:
```cpp
#include
#include
int main() {
std::string str = "Привет, мир!";
std::wstring wstr = L"Привет, мир!";
std::cout << "string length: " << str.length() << std::endl;
std::wcout << L"wstring length: " << wstr.length() << std::endl;
// 尝试按索引输出字符
std::cout << "Первый символ string: " << str[0] << std::endl;
std::wcout << L"Первый символ wstring: " << wstr[0] << std::endl;
}
```
输出让我困惑:std::string 的长度比字符串中的字符数大,而 wstring 的行为不同。我还听说存在 Unicode、编码和平台相关的问题。请指教,谢谢!