一.概念
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);