c++字串的轉化 (string,char* tchar*)
阿新 • • 發佈:2019-02-11
1.將string轉化為char*
string s("你好");
char *nihao=s.data();
char *nihao=s.c_str();
2.將string轉化為TCHAR[]
string res("你好");
TCHAR wc[MAX_PATH];
#ifdef UNICODE
_stprintf_s(wc, MAX_PATH, _T("%S"), res.c_str());//%S寬字元
#else
_stprintf_s(wc, MAX_PATH, _T("%s"), res.c_str());//%s單字元
或者
TCHARwc[256];
MultiByteToWideChar(CP_ACP,0,(LPCSTR)res.c_str(),-1,wc, 256);
3.將 TCHAR *轉化為string
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;
}