wstring,CString,string之间相互转换
- CString _cstr;
- wstring _wstr;
- _wstr=_cstr.GetString();
-
- wstring _wstr;
- CString _cstr;
- _cstr=_wstr.c_str();
-
- #include <locale>
- #include <codecvt>
- std::string ConvertWstringToString(const std::wstring& wstr)
- {
- std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
- return converter.to_bytes(wstr);
- }
-
- #include <locale>
- #include <codecvt>
- std::wstring ConvertStringToWstring(const std::string& input)
- {
- std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
- return converter.from_bytes(input);
- }
-
(1)多字节编码下:
- CString c_name = "li";
- std::string str = c_name.GetBuffer();
-
(2)Unicode编码下:
- //CT2A含义
- //C:convert,转换的意思
- //T:中间类型,如果定义了_UNICODE,则T表示W;如果定义了_MBCS,则T表示A
- //W:宽字符串,也就是UNICODE
- //A:ANSI字符串,也就是Muti-Byte。
- CString c_name = _T("li");
- //所以CT2A其实就是CW2A就是将Unicode转换为多字符集ASCII,也可写成CW2A
- std::string str = CT2A(c_name.GetString());
-
- //方法1
- std::string name = "li";
- CString c_name;
- c_name = name.c_str(); //注意这里使用的是 =运算符的重载
-
- //方法2
- CString Str2Cstr(string str)
- {
- return CString(str.c_str());
- }
-
- //方法3
- //CA2T含义
- //C:convert,转换的意思
- //A:ANSI字符串,也就是Muti-Byte
- //2:to
- //T:中间类型,如果定义了_UNICODE,则T表示W;如果定义了_MBCS,则T表示A
- //W:宽字符串,也就是UNICODE
- std::string name = "li";
- CString c_name = CA2T(name.c_str()); //所以CA2T也就是CA2W就是将多字符集转换为宽字符UNICODE,也可写成CA2W。
-
-
- string str;
- const char* p=str.c_str();
-
将数字常量转换为字符串,返回值为转换完毕的字符串
头文件:#include < string >(必须加)
- string s = to_string(i); //将整数i转换为字符串表示形式
- string to_string (int val);
- string to_string (long val);
- string to_string (long long val);
- string to_string (unsigned val);
- string to_string (unsigned long val);
- string to_string (unsigned long long val);
- string to_string (float val);
- string to_string (double val);
- string to_string (long double val);
-
- //将int类型变量除100转为wstring类型
- wstring MainFrame::IntToWstring(int _i)
- {
- double tempf = _i / 100.0;
- // 将浮点数值转换为字符串
- std::ostringstream oss;
- oss << tempf;
- std::string tempStr = oss.str();
- // 将字符串转换为wstring
- std::wstring str(tempStr.begin(), tempStr.end());
- return str;
- }
-
- //2024.1.17 wstring转string
- std::string CMachineSetting::ConvertWstringToString(const std::wstring& wstr)
- {
- std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
- return converter.to_bytes(wstr);
- }
-
-
可以将 const string* 类型 转化为 const char* 类型
头文件:#include
c_str()就是将C++的string转化为C的字符串数组,c_str()生成一个const char *指针,指向字符串的首地址
因为在c语言中没有string类型,必须通过string类对象的成员函数 c_str() 把 string 转换成c中的字符串样式
- char temp[20];
- string tempstr=temp;
-