zoukankan      html  css  js  c++  java
  • CString 与 std::string 相互转化

     MFC中CString 与 std::string 相互转化

    CString实际是CStringT, 也就是模板类, 

    在UNICODE环境下,实际是CStringW, 

    在多字符集环境下,实际是CStringA 

    std::string就是多字符集的. 

     

    UNICODE环境下

    • CStringW-->std::string

    CString实际是CStringW,要转换成多字符集,需进行转码。使用WideCharToMultiByte 转换成多字符集,然后再构造std::string

    • std::string-->CStringW

    因为CStringT模板类已经自动做了 char* 到 wchar_t* 的转码。

    • 实例
    //使用Unicode 字符集
    CString strCS("HelloWorld");
    USES_CONVERSION;
    std::string strS(W2A(strCS)); //CString-->std::string
    CString strCStemp;
    strCStemp = strS.c_str();//std::string-->CString

    注意:std::string-->CString时,不可以写在同一行:

    CString strCStemp = strS.c_str();//ERROR

    多字符集

    CString 实际就是CStringA. 

    //CStringA-->std::string
    CString strCS("HelloWorld");
    std::string strS;
    strS = strCS.GetBuffer(0);
    
    //std::string-->CStringA
    CString strCStemp = strS.c_str();//注意,可写在同一行


     

  • 相关阅读:
    python3中内置函数map 和 reduce函数的使用
    爬山算法和模拟退火算法
    Link-Cut Tree(LCT)
    启发式搜索——A*算法
    树上分块
    CodeChef TRIPS-Children Trips 树上分块
    CodeChef:Chef and Problems(分块)
    莫队算法
    Konig定理及证明
    块状链表
  • 原文地址:https://www.cnblogs.com/whl2012/p/4811912.html
Copyright © 2011-2022 走看看