C++变量类型转换

来源:互联网 发布:windows pe修复引导 编辑:程序博客网 时间:2024/06/05 15:07
1:int转换为CString

CString str;str.Format("As string: %d", int);

2:double转换为CString

CString str;str.Format("As string: %g", double);

3:string转换为CString

CString strstd::string ss= "Hello,World!";str= ss.c_str();
std::string s("Hello");CString cs(s.c_str());

 4:CString转换为string

CString cs("Hello");std::string s((LPCTSTR)cs);//如果是UNICODECString cs ("Hello");// 转换TCHAR string为 LPCSTRCT2CA pszConvertedAnsiString (cs);// 用LPCSTR构造一个stringstd::string strStd (pszConvertedAnsiString);

5:CString转换为double

CString thestring("13.37");double d = atof(thestring).//如果为Unicode编译, 使用_wtof():CString thestring(L"13.37");double d = _wtof(thestring).//同时支持Unicode和非UnicodeCString thestring(_T("13.37"));double d = _tstof(thestring).

6:CString转换为int

int iValue;CString cstrValue;int i;int j = swscanf_s(cstrValue, _T("%d"), &i);if (j != 1){     // 未转换成功    iValue= 0;} else{    //转换成功    iValue= i;}

7:CString转换为char*

CStringA m_szlstfile; const size_t newsizea = (m_szlstfile.GetLength() + 1);char *nstringa = new char[newsizea];strcpy_s(nstringa, newsizea, m_szlstfile);CT2CA pszConvertedAnsiString(m_szlstfile);char *nstringa = pszConvertedAnsiString;//const char *const char *nstringa = m_szlstfile;

 8:转载自国外网站的CString转换整理

//UNICODE CString to std::wstring and std::stringCString cstrOrgString = L"SomeString";//Converted Unicode CString to std::wstringstd::wstring wstring(cstrOrgString);//Converted Unicode std::wstring to std::stringstd::string strString;strString.assign(wstring.begin(), wstring.end());//UNICODE CString to std::string using ATL CW2A macrosCString cstrOrgString("SomeString");std::string stdString(CW2A(cstrOrgString.GetString()));//UNICODE CString to std::string and UTF-8 encodedstd::string stdString(CW2A(cstrOrgString.GetString(), CP_UTF8));//Converted from std::string to CString by using CString Constructorstd::string strStdString("SomeString");CString strCString(strStdString.c_str());//Converted from CString to std::string using ANSI variant CStringA to convert to char*; construct from itCString strSomeCstring("SomeString");std::string strStdString(CStringA(strSomeCstring));//Multibyte CStringA string to a char * stringCStringA cstrMyString("SomeString");const size_t newsizea = (cstrMyString.GetLength() + 1);char *nstringa = new char[newsizea];strcpy_s(nstringa, newsizea, cstrMyString);//Convert from CStringW to a char* string. To be safe, we allocate two bytes for each//character in the original string, including the terminating null.CStringW cstrMyString("SomeString");const size_t newsizew = (cstrMyString.GetLength() + 1) * 2;char *nstringw = new char[newsizew];size_t convertedCharsw = 0;wcstombs_s(&convertedCharsw, nstringw, newsizew, cstrMyString, _TRUNCATE);//Convert CStringA to a wchar_t* wide stringCStringA cstrOrgStringA("SomeString");size_t convertedCharsa = 0;wchar_t *wcstring = new wchar_t[newsizea];mbstowcs_s(&convertedCharsa, wcstring, newsizea, cstrOrgStringA, _TRUNCATE);//Convert wide character CStringW string to a wide character wchar_t* string.//To be safe, we allocate two bytes for each character in the original string, including the terminating null.CStringW cstrOrgStringW("SomeString");const size_t newsizew = (cstrOrgStringW.GetLength() + 1) * 2;wchar_t *n2stringw = new wchar_t[newsizew];wcscpy_s(n2stringw, newsizew, cstrOrgStringW);//Convert to a wide character _bstr_t string from  a multibyte CStringA string.CStringA cstrOrgStringA("SomeString"); _bstr_t bstrtString(cstrOrgStringA);//Convert to a wide character_bstr_t string from  a wide character CStringW string.CStringW cstrOrgStringW("SomeString");_bstr_t bstrtwString(cstrOrgStringW);//Convert to a wide character CComBSTR string from  a multibyte character CStringA string.CStringA cstrOrgStringA("SomeString");CComBSTR ccombstr(cstrOrgStringA);//Convert the wide character string to multibyte  for printing.CW2A printstr(ccombstr);cout << printstr << endl;//Convert to a wide character CComBSTR string from  a wide character CStringW string.CStringW cstrOrgStringW("SomeString");CComBSTR ccombstrw(cstrOrgStringW);//Convert the wide character string for printingCW2A printstrw(ccombstrw);wcout << printstrw << endl;//Convert a multibyte character CStringA to a  multibyte version of a basic_string string (std::string).CStringA cstrOrgStringA("SomeString");std::string basicstring(cstrOrgStringA);//Convert a wide character CStringW to a wide character version of a basic_string (std::wstring) string.std::wstring basicstringw(cstrOrgStringW);//Convert a multibyte character CStringA to a  System::String.CStringA cstrOrgStringA("SomeString");String ^systemstring = gcnew String(cstrOrgStringA);delete systemstring;//Convert a wide character CStringW to a System::String.CStringW cstrOrgStringW("SomeString");String^systemstringw = gcnew String(cstrOrgStringW);delete systemstringw;
View Code

 

 

待续..