學習筆記 字串的追加和裁剪

2021-05-26 19:37:04 字數 1441 閱讀 9460

關於字串的處理,我之前一般只停留在string的層面,也沒有更加深入的去學習,心裡面認為,會用就可以了,沒有必要知道為什麼是這樣?型別到底是什麼樣子,可就在我稀里糊塗用的時候,卻發現了很多亂碼跳了出來,這個時候我不得不考慮型別的問題了。今天才知道,string型別原來是basic_string型的一種定義。如果要用到unicode,就要用到wstring,wstring 原來是basic_string型別的定義。真是火了,後來我用cout輸出wstring的字串,神氣般的出問題了,原來要用wcout來輸出到流。這個該死的東西,弄的我太丟人了,自認為自己的c++還不錯,沒有想到今天就這樣碰殼了。先看看簡單的字串追加和裁剪的處理,為了能使basic_string和basic_string都能使用的方法,這裡用模板實現,追隨大老的蹤跡,重現大老的光輝歲月:

//1.追加字串

template<

typename

t>

voidpad(basic_string& s,

typename

basic_string::size_type n,t c)

if(n > s.length())

2.裁剪字串

template<

typename

t>

voidtrim(basic_string& s,t c)

if(s.empty())

return

;typename

basic_string::iterator ptr;

for(ptr = s.end(); ptr != s.begin() && *--ptr == c;)

if(*ptr != c)

ptr ++;

s.erase(ptr,s.end());

int_tmain(

intargc, _tchar* argv)

string s = "xiaohe is a good boy";

wstring ws_ = l"xiaohe is good boy!";

pad(s,s.length() + 6,'.');

cout << s << endl;

pad(ws_,ws_.length() + 3,l'!');

wcout << ws_ << endl;

string _charstr = "hello,boys,,,,"

;wstring _wchar_tstr = l"hello,girls!!!!"

;trim(_charstr,','

);cout << _charstr << endl;

trim(_wchar_tstr,l'!'

);wcout << _wchar_tstr << endl;

return

0;因為之前一直看boost,所以對boost裡的字串修剪的方法還是相對比較了解。boost裡雖然提供了很多方法,但因為它不是zhu

字串的追加

define crt secure no warnings include include include include include 使用系統提供的函式strcat strncat int main0101 char dest 100 hello char src world 字串追加 str...

MYSQL 字串替換,字串後追加字串

表table欄位sn的 20550000001 中的205500替換為nd100 update table set sn replace sn,205500 nd100 ysql 往表中某個欄位的字串後追加字串 update 表名 set 欄位名 concat 欄位名,需新增的值 where 條件 ...

python 字串追加例項

通程式設計客棧過乙個for迴圈,將乙個乙個字元追加到字串中 方法一 string str u 追加字元 for i in range len str string str 程式設計客棧i print string 顯示結果 追加字元 方法二 string str u 1234 for i inwww...