資源描述:
《C++中的string常用函數(shù)用法總結(jié)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、C++中的string常用函數(shù)用法總結(jié)首先,為了在我們的程序中使用string類型,我們必須包含頭文件。如下:#include//注意這里不是string.hstring.h是C字符串頭文件#includeusingnamespacestd;1.聲明一個C++字符串聲明一個字符串變量很簡單:stringStr;這樣我們就聲明了一個字符串變量,但既然是一個類,就有構(gòu)造函數(shù)和析構(gòu)函數(shù)。上面的聲明沒有傳入?yún)?shù),所以就直接使用了string的默認的構(gòu)造函數(shù),這個函數(shù)所作的就是把Str
2、初始化為一個空字符串。String類的構(gòu)造函數(shù)和析構(gòu)函數(shù)如下:a)?????strings;???//生成一個空字符串sb)?????strings(str)//拷貝構(gòu)造函數(shù)生成str的復(fù)制品c)?????strings(str,stridx)//將字符串str內(nèi)“始于位置stridx”的部分當(dāng)作字符串的初值d)?????strings(str,stridx,strlen)//將字符串str內(nèi)“始于stridx且長度頂多strlen”的部分作為字符串的初值e)?????strings(cstr)//將C字符串作為s的初值f
3、)?????strings(chars,chars_len)//將C字符串前chars_len個字符作為字符串s的初值。g)?????strings(num,c)//生成一個字符串,包含num個c字符h)?????strings(beg,end)//以區(qū)間beg;end(不包含end)內(nèi)的字符作為字符串s的初值i)?????s.~string()//銷毀所有字符,釋放內(nèi)存都很簡單,我就不解釋了。2.字符串操作函數(shù)這里是C++字符串的重點,我先把各種操作函數(shù)羅列出來,不喜歡把所有函數(shù)都看完的人可以在這里找自己喜歡的函數(shù),再到
4、后面看他的詳細解釋。a)=,assign()????//賦以新值b)swap()????//交換兩個字符串的內(nèi)容c)+=,append(),push_back()//在尾部添加字符d)insert()//插入字符e)erase()//刪除字符f)clear()//刪除全部字符g)replace()//替換字符h)+//串聯(lián)字符串i)==,!=,<,<=,>,>=,compare()???//比較字符串j)size(),length()???//返回字符數(shù)量k)max_size()//返回字符的可能最大個數(shù)l)empty()
5、???//判斷字符串是否為空m)capacity()//返回重新分配之前的字符容量n)reserve()//保留一定量內(nèi)存以容納一定數(shù)量的字符o)[],at()//存取單一字符p)>>,getline()//從stream讀取某值q)<??//將謀值寫入streamr)copy()//將某值賦值為一個C_strings)c_str()//將內(nèi)容以C_string返回t)data()//將內(nèi)容以字符數(shù)組形式返回u)substr()//返回某個子字符串v)查找函數(shù)w)begin()end()//提供類似STL的迭代器支持x
6、)rbegin()rend()//逆向迭代器y)get_allocator()//返回配置器下面詳細介紹:2.1C++字符串和C字符串的轉(zhuǎn)換C++提供的由C++字符串得到對應(yīng)的C_string的方法是使用data()、c_str()和copy(),其中,data()以字符數(shù)組的形式返回字符串內(nèi)容,但并不添加'/0'。c_str()返回一個以‘/0'結(jié)尾的字符數(shù)組,而copy()則把字符串的內(nèi)容復(fù)制或?qū)懭爰扔械腸_string或字符數(shù)組內(nèi)。C++字符串并不以'/0'結(jié)尾。我的建議是在程序中能使用C++字符串就使用,除非萬不得
7、已不選用c_string。由于只是簡單介紹,詳細介紹掠過,誰想進一步了解使用中的注意事項可以給我留言(到我的收件箱)。我詳細解釋。2.2大小和容量函數(shù)一個C++字符串存在三種大?。篴)現(xiàn)有的字符數(shù),函數(shù)是size()和length(),他們等效。Empty()用來檢查字符串是否為空。b)max_size()這個大小是指當(dāng)前C++字符串最多能包含的字符數(shù),很可能和機器本身的限制或者字符串所在位置連續(xù)內(nèi)存的大小有關(guān)系。我們一般情況下不用關(guān)心他,應(yīng)該大小足夠我們用的。但是不夠用的話,會拋出length_error異常c)capa
8、city()重新分配內(nèi)存之前string所能包含的最大字符數(shù)。這里另一個需要指出的是reserve()函數(shù),這個函數(shù)為string重新分配內(nèi)存。重新分配的大小由其參數(shù)決定,默認參數(shù)為0,這時候會對string進行非強制性縮減。還有必要再重復(fù)一下C++字符串和C字符串轉(zhuǎn)換的問題,許多人會遇到這樣的問題,自