常用的字符转换表:
转换表
源格式->目标格式 string char* const char* char[]
string NULL 直接赋值 直接赋值 直接赋值
char* strcpy NULL const_cast char*=char
const char* c_str() 直接赋值 NULL const char*=char;
char[] copy() strncpy_s() strncpy_s() NULL
宏定义转换格式
char* szTempSend=NULL;
unsigned long leng_th;
CString cs_in;
USES_CONVERSION;
cs_in=_T(“adc中国人的a\r\n新的银行”);
szTempSend = W2A(cs_in);//转成字节流,szTempSend在函数结束后无需用函数释放
字节转换
CString—>BYTE
CString m_cstr;
BYTE m_byte[100];
m_byte=(BYTE*)m_cstr.GetBuffer(m_cstr.GetLength()); //cstring转BYTE
BYTE----> CString
同理:
m_cstr.format(“%s”,m_byte); //BYTE字符串输出
CString -->char * 多字节转换
CString str1 =_T(“123”);
int len =WideCharToMultiByte(CP_ACP,0,str1,-1,NULL,0,NULL,NULL);
char *ptxtTemp =new char[len +1];
WideCharToMultiByte(CP_ACP,0,str1,-1,ptxtTemp,len,NULL,NULL );
string to CString
CString.format(“%s”,string.c_str());
CString to string
string str(CString.GetBuffer(str.GetLength()));
很多时候,我们可以使用string作为中间过渡值,转换成你想要的数据类型,有些类型是不能直接转换的,需要string去过渡,有了这种方法,任何类型的数据类型,你都可以轻松转换了.