1. 程式人生 > >c++字串的轉化 (string,char* tchar*)

c++字串的轉化 (string,char* tchar*)

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;
}