美文网首页
char* 和 CString 互转

char* 和 CString 互转

作者: 星星之火666 | 来源:发表于2019-05-10 11:07 被阅读0次
    • 1、char* 转 CString (这种方法 两个变量 不占 同一内存)
      当 char* 以NULL 结束时,可以使用: (直接赋值法)
    #include<afx.h>
    #include <iostream>
    using namespace std;
    int main()
    {
        char* cStr = (char*)"1234中间56";  // 注意最好为 纯英文字符,有的计算机 如果含 中文字符会乱码
        CString str = "";
        str = cStr;
        wcout.imbue(std::locale("chs"));  // 使 wcout 支持 中文 输出
        wcout << (LPCTSTR)str;
    }
    
    • 2、CString 转 char* (这种方法 两个变量占 同一内存)
    #include<afx.h>
    #include <iostream>
    using namespace std;
    int main()
    {
        CString str = L"1234567中国90";
        char* p;
        p = (char*)(LPCTSTR)str;  // CString 转 char*
        cout << p << endl;
        for (int i = 0; i < 50; i++)
            cout << int(p[i]) << ", ";
    }
    

    输出:(注意:输出到 第一个 连续 3 个 0 就结束了)

    1
    49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 54, 0, 55, 0, 45, 78, -3, 86, 57, 0, 48, 0, 0, 0, -3, -3, -3, -3, -35, -35, 0, 0, -76, 23, -68, -35, 15, 32, 0, 8, 70, 108, 115, 116, 0, 0, 0, 0, -120, 113,
    

    相关文章

      网友评论

          本文标题:char* 和 CString 互转

          本文链接:https://www.haomeiwen.com/subject/jwmooqtx.html