【C++ 中的字符串(string、CString、wstring)类型转换】

在 C++ 编程中,经常会遇到不同字符串类型之间的转换,比如 string、CString 和 wstring。这些字符串类型具有不同的字符集和底层实现。本篇博客将介绍如何在这些字符串类型之间进行相互转换,并提供多种转换方法供选择。

1. string 类型

string 类型是 C++ 标准库中的字符串类型,使用 char 字符集。如果要将 string 转换为其他类型的字符串,可以使用以下方法:

  • 将 string 转换为 CString:

    std::string str = "Hello";
    CString cstr(str.c_str());
    
  • 将 string 转换为 wstring:

    std::string str = "Hello";
    std::wstring wstr(str.begin(), str.end());
    

2. CString 类型

CString 类型是 MFC(Microsoft Foundation Classes)库中的字符串类型,使用 TCHAR 字符集,支持 ANSI 和 Unicode 字符集。如果要将 CString 转换为其他类型的字符串,可以使用以下方法:

  • 将 CString 转换为 string:

    CString cstr = _T("Hello");
    std::string str((LPCTSTR)cstr);
    
    
  • 将 CString 转换为 wstring:

    CString cstr = _T("Hello");
    std::wstring wstr((LPCTSTR)cstr);
    
    
    CString str = L"Hello, world!";
    std::wstring wstr(str.GetString());
    
    CString str = L"Hello, world!";
    std::wstring wstr = str;
    
    

3. wstring 类型

wstring 类型是 C++ 标准库中的宽字符字符串类型,使用 wchar_t 字符集。如果要将 wstring 转换为其他类型的字符串,可以使用以下方法:

  • 将 wstring 转换为 string:

    std::wstring wstr = L"Hello";
    std::string str(wstr.begin(), wstr.end());
    
  • 将 wstring 转换为 CString:

    std::wstring wstr = L"Hello";
    CString cstr(wstr.c_str());
    

这些方法是常见的字符串类型之间的转换方法,但还有其他方法可供选择,取决于具体的使用场景和需求。在选择转换方法时,需要考虑字符集的兼容性和底层实现的差异。

总结:

  • 使用 std::string 和 std::wstring 进行 C++ 标准库中的字符串处理。
  • 使用 CString 进行 MFC 框架中的字符串处理。
  • 根据需要选择适当的转换方法,确保字符集和底层实现的一致性。

希望这篇博客能够帮助您更好地理解 string、CString 和 wstring 之间的相互转换

注:本博客中的示例代码仅供参考,请根据您的实际需求进行适当修改和调整。

猜你喜欢

转载自blog.csdn.net/qq_44859843/article/details/131090046