小石這此總結下cstring的使用,在mfc程式設計中,cstring作為我們常用的類。下面介紹下它:
cstring類作為mfc的常用類,當之無愧。可以這樣說,只要是從事mfc開發,基本都會遇到使用cstring類的場合。因為字串的使用比較普遍,而cstring類又提供了對字串的便捷操作,所以它給mfc開發人員帶來了高的開發效率,受到了開發者的歡迎。
一、建構函式
作為乙個類,首先我們第一步肯定是要先去構造cstring(const cstring& stringsrc);,例如
cstring str1(__t("www.daheng-image.com"));
將乙個已經存在的cstring物件stringsrc的內容拷貝到該cstring物件。例如
2 第二種建構函式cstring(lpctstr lpch, int nlength),舉個例子如下:cstring str1(_t("www.daheng-image.com")); // 將常量字串拷貝到str1
cstring str2(str1); // 將str1的內容拷貝到str2
cstring str(_t("www.daheng-image.com"),3); // 構造的字串物件內容為"www"
3 第三種建構函式cstring(tchar ch, int nlength = 1);
cstring str(_t('w'),3); // str為"www"
二、cstring類的大小寫轉換及順序轉換函式
cstring& makelower();
將字串中的所有大寫字元轉換為小寫字元。
cstring& makeupper();
將字串中的所有小寫字元轉換為大寫字元。
cstring& makereverse();
將字串中所有字元的順序顛倒。
例如:
三、 cstring物件的連線cstring str(_t("shirunfa"));
str.makelower(); // str為"shirunfa"
str.makeupper(); // str為"shirunfa"
str.makereverse(); // str為"afnurihs"
多個cstring物件的連線可以通過過載運算子+、+=實現。例如:
四、 cstring物件的比較cstring str(_t("daheng-image")); // str內容為"daheng-image"
str = _t("www.") + str + _t("."); // str為"www.daheng-image."
str += _t("com"); // str為"www.daheng-image.com"
cstring物件的比較可以通過==、!=、<、>、<=、>=等過載運算子實現,也可以使用compare和comparenocase成員函式實現。
int compare(pcxstr psz) const;
將該cstring物件與psz字串比較,如果相等則返回0,如果小於psz則返回值小於0,如果大於psz則返回值大於0。
int comparenocase(pcxstr psz) const throw();
此函式與compare功能類似,只是不區分大小寫。
例如:
五、. cstring物件字串的提取操作cstring str1 = _t("shirunfa");
cstring str2 = _t("shirunfa");
if (str1 == str2)
if (0 == str1.comparenocase(str2))
cstring left(int ncount) const;
提取該字串左邊ncount個字元的子字串,並返回乙個包含這個子字串的拷貝的cstring物件。
cstring right(int ncount) const;
提取該字串右邊ncount個字元的子字串,並返回乙個包含這個子字串的拷貝的cstring物件。
cstring mid(int ifirst,int ncount) const;
提取該字串中以索引ifirst位置開始的ncount個字元組成的子字串,並返回乙個包含這個子字串的拷貝的cstring物件。
cstring mid(int ifirst) const;
提取該字串中以索引ifirst位置開始直至字串結尾的子字串,並返回乙個包含這個子字串的拷貝的cstring物件。
例如:
六、 cstring物件字串的查詢操作cstring str1 = _t("shirunfa");
cstring str2 = str1.left(3); // str2為"shi"
str2 = str1.right(2); // str2為"fa"
str2 = str1.mid(1,3); // str2為"hir"
str2 = str1.mid(5); // str2為"nfa"
int find(pcxstr pszsub,int istart=0) const throw( );
int find(xchar ch,int istart=0) const throw( );
在cstring物件字串的istart索引位置開始,查詢子字串pszsub或字元ch第一次出現的位置,如果沒有找到則返回-1。
int findoneof(pcxstr pszcharset) const throw( );
查詢pszcharset字串中的任意字元,返回第一次出現的位置,找不到則返回-1。
int reversefind(xchar ch) const throw();
從字串末尾開始查詢指定的字元ch,返回其位置,找不到則返回-1。這裡要注意,儘管是從後向前查詢,但是位置的索引還是要從開始算起。
七 cstring類物件字串的替換與刪除cstring str = _t("shirunfa");
int nindex1 = str.find(_t("ru")); // nindex1的值為2
int nindex2 = str.findoneof(_t("hun")); // nindex2的值為1
int nindex3 = str.reversefind(_t('a')); // nindex3的值為7
int replace(pcxstr pszold,pcxstr psznew);
用字串psznew替換cstring物件中的子字串pszold,返回替換的字元個數。
int replace(xchar chold,xchar chnew);
用字元chnew替換cstring物件中的字元chold,返回替換的字元個數。
int delete(int iindex,int ncount = 1);
從字串中刪除iindex位置開始的ncount個字元,返回刪除操作後的字串的長度。
int remove(xchar chremove);
刪除字串中的所有由chremove指定的字元,返回刪除的字元個數。
例如:
cstring str = _t("shirunfa");
int n1 = str.replace(_t('s'), _t('j')); // str為"jhirunfa",n1為1
int n2 = str.delete(1,2); // str為"srunfa",n2為6
int n3 = str.remove(_t('a')); // str為"shirunf",n3為1
CSocket類網路程式設計 MFC
visual c 的mfc提供了csocket類用來實現網路通訊。下面介紹vc 在windows 95中實現socket的 csocket 類相關成員函式 這些成員函式實際上是從casyncsocket 類繼承來的 的使用。1 bool create uint nsocketport 0,int n...
MFC網路程式設計之 TCP伺服器
平台 windows10企業版,vs2013 1.工程建立,基於對話方塊,新增windows socket 支援 2.從csocket派生出自定義監聽socket類sersoc,建立物件 sersoc m socket注意概念 伺服器的監聽socket永遠只是用來接受連線請求。執行通訊,即資料收發時...
MFC網路程式設計之 TCP客戶端
平台 windows10企業版,vs2013 1.工程建立,基於對話方塊,新增windows socket 支援 2.新增通訊socket類,繼承於csockets 3.建立socket,m sock.create 4.與處於監聽狀態的伺服器進行連線 m sock.connect t 127.0.0...