C++ 系統(tǒng)String類(lèi)詳解
一、C++ 系統(tǒng)String類(lèi)
除了使用字符數(shù)組來(lái)處理字符串以外,c++引入了字符串類(lèi)型。可以定義字符串變量。
1.定義及初始化
#include <iostream> #include <string.h> using namespace std; int main() { string str; str = "china"; string str2 = " is great "; string str3 = str2; cout<<str<<str2<<endl<<str3<<endl; return 0; }
2.類(lèi)型大小
cout<<"sizeof(string) = "<<sizeof(string)<<endl; cout<<"sizeof(str) = "<<sizeof(str)<<endl;
3.常用運(yùn)算
1.賦值
string str3 = str
2.加法
string combine = str + str2; cout<<combine<<endl;
3.關(guān)系
#include <iostream> #include <string.h> using namespace std; int main() { string s1 = "abcdeg"; string s2 = "12345"; if(s1>s2) cout<<"s1>s2"<<endl; else cout<<"s1<s2"<<endl; string s3 = s1+s2; cout<<s3<<endl; return 0; }
4.常見(jiàn)的成員函數(shù)
1.下標(biāo)操作
char & operator[](int n) ;
2.求串大小
int size();
3.返回c串(c語(yǔ)言中的字符串也叫c串)
char *c_str();
4.查找
int find(char c, int pos = 0); int find(char * s, int pos = 0); //返回下標(biāo)值,沒(méi)有找到返回-1,默認(rèn)從 0 下標(biāo)開(kāi)
5.刪除
string &erase(int idx=0,int n = npos); //作用是刪除從 idx 開(kāi)始,往后數(shù) n 位的字符串
6.交換swap
void swap(stirng &s2);
5.string類(lèi)型數(shù)組
#include <iostream> #include <string.h> using namespace std; int main() { string sArray[10] = { "0", "1", "22", "333", "4444", "55555", "666666", "7777777", "88888888", "999999999", }; for(int i=0; i<10; i++) { cout<<sArray[i]<<endl; } return 0; }
string 數(shù)組是高效的,如果用二維數(shù)組來(lái)存入字符串?dāng)?shù)組的話,則容易浪費(fèi)空間,此時(shí)列數(shù)是由最長(zhǎng)的字符串決定。如果用二級(jí)指針申請(qǐng)堆空間,依據(jù)大小申請(qǐng)相應(yīng)的空間,雖然解決了內(nèi)存浪費(fèi)的問(wèn)題,但是操作麻煩。用 string 數(shù)組存儲(chǔ),字符串?dāng)?shù)組的話,效率即高又靈活。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C++使用WideCharToMultiByte函數(shù)生成UTF-8編碼文件的方法
用來(lái)映射Unicode字符串的WideCharToMultiByte函數(shù)經(jīng)常被用來(lái)進(jìn)行UTF-8編碼的轉(zhuǎn)換,以下我們將看到C++使用WideCharToMultiByte函數(shù)生成UTF-8編碼文件的方法,首先先來(lái)對(duì)WideCharToMultiByte作一個(gè)詳細(xì)的了解:2016-06-06C++實(shí)現(xiàn)有向圖鄰接表的構(gòu)建
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)有向圖鄰接表的構(gòu)建,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04C++ Boost PointerContainer智能指針詳解
智能指針是一種像指針的C++對(duì)象,但它能夠在對(duì)象不使用的時(shí)候自己銷(xiāo)毀掉。雖然STL提供了auto_ptr,但是由于不能同容器一起使用(不支持拷貝和賦值操作),因此很少有人使用。它是Boost各組件中,應(yīng)用最為廣泛的一個(gè)2022-11-11String底層函數(shù)的實(shí)現(xiàn)方式詳解
這篇文章主要介紹了String底層函數(shù)的實(shí)現(xiàn)方式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09C語(yǔ)言實(shí)現(xiàn)動(dòng)態(tài)愛(ài)心代碼
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)C語(yǔ)言實(shí)現(xiàn)動(dòng)態(tài)愛(ài)心的效果,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,還不快跟隨小編一起get李峋同款?lèi)?ài)心代碼2022-11-11