標準 C++ 中的 string 類的用法總結

發表於2016-12-23

相信使用過MFC程式設計的朋友對CString這個類的印象應該非常深刻吧?的確,MFC中的CString類使用起來真的非常的方便好用。但是如果離開了MFC框架,還有沒有這樣使用起來非常方便的類呢?答案是肯定的。也許有人會說,即使不用MFC框架,也可以想辦法使用MFC中的API,具體的操作方法在本文最後給出操作方法。其實,可能很多人很可能會忽略掉標準C++中string類的使用。標準C++中提供的string類得功能也是非常強大的,一般都能滿足我們開發專案時使用。現將具體用法的一部分羅列如下,只起一個拋磚引玉的作用吧,好了,廢話少說,直接進入正題吧!

要想使用標準C++中string類,必須要包含

#include <string>// 注意是<string>,不是<string.h>,帶.h的是C語言中的標頭檔案

using std::string;

using std::wstring;

using namespace std;

下面你就可以使用string/wstring了,它們兩分別對應著char和wchar_t。

string和wstring的用法是一樣的,以下只用string作介紹:

string類的建構函式:

此外,string類還支援預設建構函式和複製建構函式,如string s1;string s2=”hello”;都是正確的寫法。當構造的string太長而無法表達時會丟擲length_error異常 ;

string類的字元操作:

string的特性描述:

string類的輸入輸出操作:

string類過載運算子operator>>用於輸入,同樣過載運算子operator<<用於輸出操作。
函式getline(istream &in,string &s);用於從輸入流in中讀取字串到s中,以換行符’\n’分開。

string的賦值:

string的連線:

string的比較:

compare函式在>時返回1,<時返回-1,==時返回0

string的子串:

string的交換:

string類的查詢函式:

string類的替換函式:

string類的插入函式:

string類的刪除函式

string類的迭代器處理:
string類提供了向前和向後遍歷的迭代器iterator,迭代器提供了訪問各個字元的語法,類似於指標操作,迭代器不檢查範圍。
用string::iterator或string::const_iterator宣告迭代器變數,const_iterator不允許改變迭代的內容。常用迭代器函式有:

rbegin和rend用於從後向前的迭代訪問,通過設定迭代器string::reverse_iterator,string::const_reverse_iterator實現

字串流處理:

通過定義ostringstream和istringstream變數實現,#include <sstream>標頭檔案中
例如:

以上就是對C++ string類的一個簡要介紹。用的好的話它所具有的功能不會比MFC中的CString類遜色多少,呵呵,個人意見!

最後要介紹如何在Win32 應用程式中引用MFC中的部分類,例如CString。

1.在工程目錄下右鍵選擇”Properties”—>”Configuration Properties”—>“General”—>”Use of MFC”—>”Use MFC in a Static Library”,

預設的是:”Use Standard Windows Libraries”,如下圖:

標準 C++ 中的 string 類的用法總結

2.在你所用的所有標頭檔案之前包含#include <afxwin.h>,例如:可以在stdafx.h檔案的最前面包含#include <afxwin.h>標頭檔案,這樣在你的原始碼中就可以使用

CString類了,不過這樣也有一個缺點,就是編譯出來的程式要比原來的大很多。我試過一個小程式,選擇”Use Standard Windows Libraries” 編譯出來

的Release版本大概92kb,使用”Use MFC in a Static Library”編譯出來的Release版本大概192kb,足足大了100kb,這個就個人考慮了……

相關文章