一.概念
string是C++提供的标准字符串操作类.wstring是操作宽字符串的类.
CString是对string(字符串)和wstring(宽字符串)的一个封装,常用在mfc中.用来解决编码问题的.
二.转换
string或者wstring转换到CString:
要把std::string或者std::wstring类型的数据存放到CString中,直接调用string::c_str()或者wstring::c_str()就行了.
CString转换到string或者wstring
CString::GetBuffer(0)就能转换到string或者wstring.如果编译时候定义了UNICODE,则转换到wstring;如果未定义,则转换到string.
string与wstring之间的转换
微软提供了一个工具,用于string和wstring之间的转换.
这个头文件中提供了一个utf8util 的命名空间,里面包含了如下的字符转换函数:
1: std::wstring UTF16FromUTF8(const std::string & utf8);
2: std::wstring UTF16FromUTF8(const char * utf8);
3: std::string UTF8FromUTF16(const std::wstring & utf16);
4: std::string UTF8FromUTF16(const wchar_t * utf16);
这个工具足够string与wstring之间的转换了.
其他:
string,wstring转数字
需要使用stringstream,wstringstream(都在sstream头文件中包含)
1: int val;
2: string str;
3: stringstream ss (stringstream::in | stringstream::out);
4: ss << str;
5: ss >> val;
CString 转数字
_ttoi()这是个宏,如果定义了UNICODE,则等价于_wtoi(),否则对应atoi(),要使用,需要引入<stdlib.h>
数字转CString
1: int iValue = 0;
2: CString::Format(_T("%d") , iValue);