欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
CString類(lèi)_自我救贖的空間
CString類(lèi)
2009-09-23 13:52

CString是MFC對字符串的封裝, 它包含一個(gè)可變長(cháng)的字符序列, 提供了很多串操作, 使用它比使用其他的字符串類(lèi)型更加方便. CString沒(méi)有繼承任何類(lèi).CString中的各個(gè)字符都是TCHAR類(lèi)型的, 它在UNICODE中是16位, 在普通字符集中是8位. CString對象可以隨著(zhù)串合并操作而動(dòng)態(tài)增長(cháng)其長(cháng)度,而無(wú)須用戶(hù)來(lái)對其長(cháng)度進(jìn)行專(zhuān)門(mén)設置. 你最好把CString看作一個(gè)串類(lèi)型,而不是一個(gè)指向字符串的指針; 但CString可以轉換為const char*和LPCTSTR類(lèi)型, 也就是說(shuō), 以const char*和LPCTSTR為參數,也可以以CString作為參數進(jìn)行調用.

一、CString的構造函數

CString類(lèi)擁有眾多的構造函數, 用于以不同的數據類(lèi)型和不同的方式構造一個(gè)字符串對象: CString(); //無(wú)參數的構造函數,產(chǎn)生一個(gè)空的CString對象 CString(const CString& stringSrc); //用另一個(gè)CString對象的值初始化對象 CString(TCHAR ch, int nRepeat=1);//用一個(gè)字符重復若干次來(lái)初始化對象 CString(LPCTSTR lpch, int nLength);//用一個(gè)字符數組和一定長(cháng)度來(lái)初始化對象 CString(const unsigned char* psz);//從一個(gè)無(wú)符號字符指針構造對象 CString(LPCWSTR lpsz);//從一個(gè)Unicode字符串來(lái)構造對象 CString(LPCSTR lpsz);//從一個(gè)ANSI字符串構造對象 可以把某些構造函數看作于類(lèi)型轉化。下面是一些例子: CString s1; CString s2("big"); CString s3 = s2; CString s4(S2 + " " + s3); CString s5(" x"); //s5=" x"; CString s6(" x",7); //s6=" xxxxxxx"; CString s7((LPCSTR)ID_FILE_NEW); //ID_FILE_NEW是一個(gè)資源ID CString city="Beijing";//注意不是同值運算符

二、CString的基本操作

得到字符串長(cháng)度:即字符串包含的字符數,用函數GetLength,它返回一個(gè)int類(lèi)型的數。 BOOL IsEmpty() const; //判斷字符串是否為空 void Empty();//強制字符串長(cháng)度為0; TCHAR GetAt(int nIndex) const //得到字符串某位置的字符;(或者用重載后的操作符“[]”) void SetAt(int nIndex, TCHAR ch)//設置字符串某位置的字符; operator LPCTSTR;強制轉換為字符串指針類(lèi)型 比如下面的代碼得到字符串最后一個(gè)字符: CString str=" aabbcde"; char c1 = str.GetAt(str.GetLength()-1); //c1="e" char c2 = str[str.GetLength()-1]; //c2="e"

三、字符串賦值、合并與格式化

1. 操作符“=”, “+”, “+=”可用于字符串的賦值與合并,如: CString str1 = "ssm", str2("dy"), str3; str3 = str1; //str3 = "ssm"; str3 = str1 + str2; //str3 = "ssmdy"; str3 += str1; //str3="ssmdyssm";

2. 最常用的字符串格式化函數是CString::Format,它根據一個(gè)參數字符串(格式控制字符串)和幾個(gè)變量來(lái)格式化一個(gè)串。 它的聲明為: void Format(LPCTSTR lpszFormat,...); void Format(UINT nFormatID, ...); 其中lpszFormat是格式控制字符串,nFormatID是格式控制字符串的資源ID。 函數Format常常用于把其他類(lèi)型的變量轉換為為字符串形式,或者把幾個(gè)不同類(lèi)型的值合并成一個(gè)字符串的形式。下面代碼演示如何把字符(char)、整數(int)、浮點(diǎn)數(float)及其他字符串格式化到一個(gè)CString對象。 CString str1, str2, str3; str1.Format("%c%c", 13, 10); str2.Format("float:%f, int:%d, hexint:%x", 3.48, 20, 0xFF); str3.Format("string:%s, formated float:%2.1f", "hehe", 3.14159; 函數Format的參數中不能包含對象本身,比如語(yǔ)句: str.Format("%s%d", str, 20); 出現在程序中將導致無(wú)法預計的后果!改成這樣就沒(méi)問(wèn)題了: str1 = str; str.Format("%s%d", str1, 20); 此外,還有一個(gè)函數FormatMessage, 它格式化一個(gè)消息字符串,這個(gè)函數的參數與Format類(lèi)似.

3. 函數LoadString用于從一個(gè)字符串資源ID得到取得字符串值。函數格式為: BOOL LoadString(UINT nID);

四、字符串的比較

CString類(lèi)重載了諸如:“==”、“!=”、“>=”、“>”、“<=”、“<”等比較操作符,并且CString對象和LPCTSTR可以相互比較,如: CString s1("abc"); CString s2("abd"); ASSERT(s1<s2); ASSERT("ABC"<s1); ASSERT是一個(gè)宏,當它的參數為false時(shí)會(huì )彈出一個(gè)消息框提示用戶(hù),用戶(hù)可以選擇繼續運行程序或忽略或退出程序的運行。 CString::Compare對本對象和參數字符串進(jìn)行比較,返回的值大于、等于、小于0分別表示本對象比參數字符串大、相等、小。

函數CompareNoCase與Compare類(lèi)似,區別是它不考慮字符的大小寫(xiě)。

五、串提取

串提取函數根據某種原則從串中提取一個(gè)子串,相關(guān)函數包括:Mid、Left、 Right、SpanIncluding、SpanExcluding。 函數Mid、Left、Right分別根據參數取得字符串中間、左邊、右邊的子串。它們的聲明如下:

CString Mid(int nFirst) const; //獲取從nFirst位置字符開(kāi)始的子串

CString Mid(int nFirst, int nCount) const; //獲取從nFirst位置的字符開(kāi)始包含nCount個(gè)字符的子串(即到nFirst+nCount-1位置的字符為止)

CString Left(int nCount) const; //獲取左邊nCount個(gè)字符所構成的子串

CString Right(int nCount) const; //獲取右邊nCount個(gè)字符所構成的子串 函數SpanIncluding功能是從字符串提取一段這樣子串:它從本字符串第一個(gè)字符開(kāi)始,直到遇到不屬于特定集合的字符為止(不包含這個(gè)字 符)。這個(gè)字符集合由參數字符串給出。如果字符串所有字符都屬于指定字符集合,函數返回整個(gè)子串;如果字符串第一個(gè)字符不屬于指定集合,函數返回空串。

SpanIncluding的聲明為: CString SpanIncluding(LPCTSTR lpszCharSet) const; 函數SpanExcluding的功能是從字符串提取這樣一段子串:它從本字符串第一個(gè)字符開(kāi)始,直到遇到屬于特定集合的字符為止(不包含這個(gè)字 符)。這個(gè)字符集合由參數字符串給出。如果字符串所有字符都不屬于指定字符集合,函數返回整個(gè)子串;如果字符串第一個(gè)字符屬于指定集合,函數返回空串。

SpanExcluding的聲明為: CString SpanExcluding(LPCTSTR lpszCharSet) const; 如果說(shuō)Mid、Left、Right三個(gè)函數是根據位置來(lái)提取子串的話(huà),那么SpanIncluding和SpanExcluding兩個(gè)函數是根據字符特征來(lái)提取子串。

六、串轉換 串轉換包括對串中字符的增加、刪除、大小寫(xiě)變換、子串替換、開(kāi)頭結尾空白字符清除等,相關(guān)函數有:MakeUpper、

MakeLower、 MakerReverse、 Replace、 Remove、 Insert、 Delete、 TrimLeft、 TrimRight。 (1)把串中所有字母變成大寫(xiě)字母:MakeUpper;相反,MakeLower把串中所有字母變成小寫(xiě)字母。 (2)顛倒串中所有字符的順序:MakeReverse, 比如"abc”變成"cba“。

(3)子串替換:Replace,這個(gè)函數有兩種形式,分別用于字符替換和串替換 int Replace (TCHAR chOld, TCHAR chNew); int Replace(LPCTSTR lpszOld, LPCTSTR lpszNew); 函數返回被替換掉的字符數。

(4)從本串中去掉所有的指定字符:int CString::Remove(TCHAR ch), 這個(gè)函數是區分大小寫(xiě)的。

(5)在本串指定位置插入一個(gè)字符或字符串:Insert, 這個(gè)函數有兩種形式: int Insert(int nIndex, TCHAR ch) int Insert(int nIndex, LPCTSTR pstr)

(6)在本串指定位置刪除一個(gè)字符或子串:Delete。

(7)函數TrimLeft和TrimRight分別用來(lái)清除串開(kāi)頭和串結尾的空白字符??瞻鬃址ǎ嚎崭?、Tab、換行符;也可以自己通過(guò)函數參數指定要清除哪些字符。TrimLeft的三種不同的形式: void TrimLeft(); void CString::TrimLeft(TCHAR chTarget); void CString::TrimLeft(LPCTSTR lpszTargets); 其中參數lpszTargets中包含了要清除的所有字符。

七、串查找 與串查找相關(guān)的函數有:Find、ReverseFind、FindOneOf。 完成串查找的基本函數是Find,它從一個(gè)串中查找一個(gè)字符或指定子串(返回第一個(gè)匹配字符或匹配串首字母的位置),并且可以指定查找的起始位置。Find的函數聲明是: int Find(TCHAR ch) const; int Find(LPCTSTR lpszSub) const; int Find(TCHAR ch, int nStart) const; int Find(LPCTSTR pstr, in nStart) const; 比如下面的代碼在字符串str中從第5個(gè)字符開(kāi)始查找字符串"jingle、、、、

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
VC中分割字符串的AfxExtractSubString函數
VC常用數據類(lèi)型使用轉換詳解
vc字符串轉換處理:(絕對精華,收集所有的例子)
LPWSTR,LPCTSTR,LPTSTR
VC:CString用法整理(轉載)
MFC常用類(lèi)、成員函數、數組類(lèi)、Cstring類(lèi)、CTime類(lèi)、CPoint類(lèi)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久