當前位置:編程學習大全網 - 編程語言 - 關於MFC中CString的用法

關於MFC中CString的用法

CString

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。

CString類成員

構造 CString 以各種方法構造壹個CString對象

字符串數組 GetLength 返回CString對象中的字符數。對多字節字符,按8位字符計算;即在壹個多字節字符中壹個開始和結束字節算作兩個字符

IsEmpty 測試壹個CString對象中是否不含有字符

Empty 強制壹個字符串的長度為0

GetAt 返回在給定位置的字符

operator [] 返回在給定位置的字符--它是代替GetAt的操作符

SetAt 設置給定位置上的字符

operator LPCTSTR 像訪問壹個C風格的字符串壹樣,直接訪問保存在壹個CString對象中的字符

分配/串聯 operator = 給CString對象賦壹個新值

operator + 連接兩個字符串並返回壹個新字符串

operator += 把壹個新字符串連接到壹個已經存在的字符串的末端

比較 operator 比較操作符 比較操作符(大小寫敏感)

Compare 比較兩個字符串(大小寫敏感)

CompareNoCase 比較兩個字符串(不區分大小寫)

Collate 比較兩個字符串(大小寫敏感,使用現場特別信息)

CollateNoCase 比較兩個字符串(不區分大小寫,使用現場特別信息)

提取 Mid 提取壹個字符串的中間壹部分(類似於BASIC的MID$函數)

Left 提取壹個字符串的左邊壹部分(類似於BASIC的LEFT$函數)

Right 提取壹個字符串的右邊壹部分(類似於BASIC的RIGHT$函數)

SpanIncluding 提取壹個字符串,該子字符串中僅含有某壹字符集合中的字符。

SpanExcluding 提取壹個字符串,該子字符串中不含有某壹字符集合中的字符。

其他轉換 MakeUpper 將字符串中的所有字符轉換為大寫字符

MakeLower 將字符串中的所有字符轉換為小寫字符

MakeReverse 將字符串中的字符以倒序排列

Replace 用其它字符替換指定的字符

Remove 從壹個字符串中移走指定的字符

Insert 在字符串中的給定索引處插入壹個字符或壹個子字符串

Delete 從壹個字符串中刪除壹個或多個字符

Format 像sprintf函數壹樣格式化該字符串

FormatV 像vprintf函數壹樣格式化該字符串

TrimLeft 將字符串中前面的空格整理出字符串

TrimRight 將字符串中結尾的空格整理出字符串

FormatMessage 格式化壹個消息字符串

搜索 Find 在壹個較大的字符串中查找字符或子字符串

ReverseFind 在壹個較大的字符串中從末端開始查找某個字符

FindOneOf 查找與某個字符集合中的字符相匹配的第壹個字符

歸檔/存儲 operator << 把壹個CString對象插入壹個存檔或轉儲的環境中

operator >> 從壹個存檔中提取壹個CString對象

緩沖區訪問 GetBuffer 返回壹個指向CString對象的指針

GetBufferSetLength 返回壹個指向CString對象的指針,字符串被截斷為指定的長度

ReleaseBuffer 釋放對GetBuffer所返回的緩沖區的控制權

FreeExtra 通過釋放原先為此字符串分配的額外內存來刪除此字符串對象的額外開銷

LockBuffer 使引用計數無效並保護緩沖區內的數據

UnlockBuffer 使引用計數有效並釋放緩沖區中的數據

Windows專用 AllocSysString 由CString數據分配壹個BSTR

SetSysString 使用CString對象中的數據來設置壹個已存在的BSTR

LoadString 從壹個Windows資源中加載壹個已經存在的CString對象

AnsiToOem 實現由ANSI字符集到OEM字符集的對應轉換

OemToAnsi 實現由OEM字符集到ANSI字符集的對應轉換

其實最詳細的資料是MSDN

  • 上一篇:計算機專業哪個最難學
  • 下一篇:關於事業成功的例子3個
  • copyright 2024編程學習大全網