一、char转 TCHAR
char a[124];
TCHAR b[124];
MultiByteToWideChar(CP_ACP, 0, a, -1, b, 128);
二、TCHAR 转string
TCHAR *STR=new TCHAR[1200];
std::string TCHAR2STRING(TCHAR *STR)
{
int iLen = WideCharToMultiByte(CP_ACP, 0,STR, -1, NULL, 0, NULL, NULL);
char* chRtn =new char[iLen*sizeof(char)];
WideCharToMultiByte(CP_ACP, 0, STR, -1, chRtn, iLen, NULL, NULL);
std::string str(chRtn);
return str;
}
三、string转TCHAR
std::string m_csFileName = std::string("hello");
TCHAR wc[MAX_PATH];
#ifdef UNICODE
_stprintf_s(wc, MAX_PATH, _T("%S"), m_csFileName.c_str());//%S宽字符
#else
_stprintf_s(wc, MAX_PATH, _T("%s"), m_csFileName.c_str());//%s单字符
#endif
四、TCHAR 转char
TCHAR *str=new TCHAR[1200];
LPSTR pszOut = NULL;
int nInputStrLen = wcslen (str);
int nOutputStrLen = WideCharToMultiByte (CP_ACP, 0, str, nInputStrLen, NULL, 0, 0, 0) + 2;
pszOut = new char [nOutputStrLen];
memset (pszOut, 0x00, nOutputStrLen);
WideCharToMultiByte(CP_ACP, 0, str, nInputStrLen, pszOut, nOutputStrLen, 0, 0);
fprintf(fp,"%s",pszOut);
五、CString转TCHAR*
CString->TCHAR*的转化可以用函数GetBuff()
函数原型为:LPTSTR GetBuffer( int nMinBufLength );
CString str("CString");
TCHAR* szMsg = new TCHAR[100];
//其参数为CString字符串的长度
szMsg = str.GetBuffer(str.GetLength());
str.ReleaseBuffer();
delete []szMsg;
szMsg = NULL;
六、TCHAR*转CString
TCHAR szTchar[18] = L"TCHAR";
CString str;
str.Format(_T("%s"),szTchar);
七、CString转char
CString str=_T("你好");
char ch[4];
for(int i=0;i<str.GetLength();i++)
{
ch[i]=str.GetAt(i);
}
例: char str2[120]={0};
for(int i=0;i<pDoc->m_CustomSet->strTime1.GetLength();i++)
{
str2[i]=pDoc->m_CustomSet->strTime1.GetAt(i);
}
char str3[120]={0};
strcpy(str3,mWYF_V_SENSOR_NODE[i].name);
char *cat=strcat( str3,str2);
八、CString 转char*
CString filePath = openFileDlg.GetPathName();
FILE *fp;
char * pNumber=new char[256];
WideCharToMultiByte(CP_ACP,0,filePath,-1,pNumber,256,NULL,NULL );
fp=fopen(pNumber,"w+");
九、char*转CString
char *str ="aaaa"
CString str1(str);
十、int 转cstring
int i =100; CString str; str.Format("%d",i); //str.Format(_T("%d"),i);
十一、枚举类型转换为字符串
static inline char* weather_str(enum Enum_weather w) //枚举类型转化为char*
{
char *strings[] = {"Rainy", "Snowy", "Cloudy", "Sunny",};
return strings[w];
}