- 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,
网友评论