char* 和 CString 互转

  • 1、char* 转 CString (这种方法 两个变量 不占 同一内存)
    当 char* 以NULL 结束时,可以使用: (直接赋值法)
#include
#include 
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
#include 
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 互转)