CString沒有基類。
一個CString對象由
可變長度的一隊字符組成。CString使用類似于Basic的語法提供函數和操作符。連接和比較操作符以及簡化的內存管理使CString對象比普通字符串數組容易使用。
CString是
基于TCHAR數據類型的對象。如果在你的程序中定義了符號_UNICODE,則TCHAR被定義為類型wchar_t,即16位字符類型;否則,TCHAR被定義為char,即8位字符類型。在UNICODE方式下,CString對象由16位字符組成。非UNICODE方式下,CString對象由8位字符組成。
當不使用_UNICODE時,CString是多字節字符集(MBCS,也被認為是雙字節字符集,DBCS)。注意,對于MBCS字符串,CString仍然基于8位字符來計算,返回,以及處理字符串,并且你的應用程序必須自己解釋MBCS的開始和結束字節。
CString對象還具有下列特征:
·
|
CString可作為連接操作的結果而增大。
|
·
|
CString對象遵循“值語義”。應將CString看作是一個真實的字符串而不是指向字符串的指針。
|
·
|
你可以使用CString對象任意替換const char*和LPCTSTR函數參數。
|
·
|
轉換操作符使得直接訪問該字符串的字符就像訪問一個只讀字符(C-風格的字符)數組一樣。 |
提示:如果可能的話,應在框架中而不是堆中分配這個CString對象。這可以節省內存并簡化參數的傳遞。
CString允許兩個具有相同值的字符串共享相同的緩沖空間,這有助于你節省內存空間。但是,如果你初始直接改變該緩沖的內容(不使用MFC),則有可能在無意中改變了兩個字符串。CString提供了兩個成員函數CString::LockBuffer和CString::UnlockBuffer來幫助你保護你的數據。當你調用LockBuffer時,你就創建了一個字符串的一個拷貝,然后將引用計數設置為-1,這就“加鎖”了該緩沖區。當緩沖區被加鎖時,就沒有其它的字符串可以引用該字符串中的數據,被加鎖的字符串也不能引用其它字符串的數據。通過加鎖該緩沖區內的字符串,就可以保證該字符串對數據的持續獨占。當你使用完數據后,調用UnlockBuffer來將引用計數恢復為1。
更多的信息,參見“Visual C++程序員指南”中的“MFC字符串”和“字符串:Unicode和多字節字符集(MBCS)支持”,以及“Microsoft Visual C++庫參考”中的“Microsoft Visual C++ 6.0運行庫參考”。
#include <afx.h>
CString類成員
構造
字符串數組
分配/串聯
比較
提取
Mid
|
提取一個字符串的中間一部分(類似于BASIC的MID$函數)
|
Left
|
提取一個字符串的左邊一部分(類似于BASIC的LEFT$函數)
|
Right
|
提取一個字符串的右邊一部分(類似于BASIC的RIGHT$函數)
|
SpanIncluding
|
提取一個字符串,該子字符串中僅含有某一字符集合中的字符。
|
SpanExcluding
|
提取一個字符串,該子字符串中不含有某一字符集合中的字符。 |
其他轉換
搜索
歸檔/存儲
緩沖區訪問
Windows專用