擴充套件std string功能的幾個做法

2021-05-22 06:55:27 字數 671 閱讀 8345

std::string毫無疑問是乙個很強大的字串類,但比起mfc的cstring類,也存在一些不足,比如字串的大小寫轉換以及格式化字串。這次我介紹一下std::string大小寫轉換的兩個函式以及格式化std::string的兩種做法。

cstring中的format函式讓人使用起來非常舒服。std::string如何實現格式化字串呢?通過搜尋網上資料,我找到了兩種辦法:

法一:利用std::ostringstream類,具體做法如下例:

法二:利用boost format library,具體如下例:

boost::format的基本語法結構為:format(需要格式化的字串 ) %引數1 %引數2 ...%引數n。具體用法參考:boost 庫之format的使用 。

另外網上有人基於std::string實現了乙個ext_string,提供一些常用的功能,例如:

1. 定義分隔符。給定分隔符,把string分為幾個字段。

2. 提供替換功能。例如,用winter, 替換字串中的wende

3. 大小寫處理。例如,忽略大小寫比較,轉換等

4. 整形轉換。例如把"123"字串轉換為123數字。

具體你可以看看:extended stl string 。我個人感覺似乎不必使用乙個派生類,需要哪個功能就單獨用乙個靜態函式似乎更為靈活。

常用std string擴充套件

第三方庫用習慣了,回到標準c 下各種不適應。因為軟體大小的限制,不能整合這些庫。乙個qt庫幾十mb,boost就更甭說了。還好常用的就只有那麼些。字串替換 string replace all string str,const string old value,const string new va...

擴充套件的UDDI功能

擴充套件的uddi功能 現有的uddi系統只提供服務的發布和查詢功能,一方面它不能滿足通常情況下,服務消費者需要在使用web服務前要了解的有關該服務服務質量 qos 方面的資訊,另一方面也沒有解決uddi在語義方面的缺陷。於是在研究傳統uddi規範的基礎上,我們對它進行了適當地改進與擴充,設計了擴充...

vim的擴充套件功能

vim 的環境設定引數 set nu set nonu 就是設定與取消行號啊!set hlsearch set nohlsearch hlsearch 就是 high light search 高亮度搜尋 這個就是設定是否將搜尋的字串反白的設定值。預設值是 hlsearch set autoinde...