欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C++中string類(lèi)對(duì)象如何使用

這篇文章主要介紹了C++中string類(lèi)對(duì)象如何使用,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁(yè)設(shè)計(jì)師等,應(yīng)用各種網(wǎng)絡(luò)程序開(kāi)發(fā)技術(shù)和網(wǎng)頁(yè)設(shè)計(jì)技術(shù)配合操作的協(xié)同工作。創(chuàng)新互聯(lián)專(zhuān)業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站制作(企業(yè)站、響應(yīng)式網(wǎng)站開(kāi)發(fā)、電商門(mén)戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!

C++相對(duì)于C語(yǔ)言,大大增強(qiáng)了對(duì)字符串的支持,除了可以使用C風(fēng)格的字符串,還可以使用內(nèi)置的數(shù)據(jù)類(lèi)型string,string類(lèi)處理起來(lái)字符串因?yàn)楹瘮?shù)的封裝就顯得特別方便,下面我們統(tǒng)計(jì)一下string類(lèi)的函數(shù)

首先,想調(diào)用string類(lèi)先包含其頭文件#include <string>

string s1;//變量s1只是定義但沒(méi)有初始化,所以其默認(rèn)值為""即空字符串string s2="Hello World!";//變量s2在定義時(shí)同時(shí)被初始化/*string類(lèi)的變量可以相互之間直接賦值,不需要像C語(yǔ)言一樣,使用strcpy()函數(shù)一個(gè)字符一個(gè)字符的去賦值*///例如string s3=s2;//此時(shí)s3的內(nèi)容和s2一樣也是Hello World!//如果需要定義一個(gè)由很多相同字符組成的字符串時(shí),還有另外的簡(jiǎn)便寫(xiě)法string s4(int n,char c);//s4是被初始化為由n的字符c組成的字符串

關(guān)于求字符串的長(zhǎng)度,在C語(yǔ)言中,我們就可以使用strlen()函數(shù)求,C++中同樣可以使用strlen(s3);這種方法求出s3字符串的實(shí)際長(zhǎng)度,但是因?yàn)镃++關(guān)于string類(lèi)與C語(yǔ)言有本質(zhì)區(qū)別,所以我們一般調(diào)用string.length()函數(shù)來(lái)求字符串的長(zhǎng)度

int len=0;len=string.length(s3);
cout<<"s3字符串的長(zhǎng)度為"<<len<<endl;

在上面我們提到,如果將一個(gè)string類(lèi)字符串賦值給另一個(gè)string類(lèi)字符串,只需要直接賦值就可以了,但是如果是string類(lèi)賦值給char*類(lèi)或者是char*類(lèi)賦值給string類(lèi)該怎么辦呢?當(dāng)然是不能直接賦值的,直接看代碼

//string類(lèi)賦值給string類(lèi)string s1="hello world";string s2;
s2=s1;//string類(lèi)賦值給char*類(lèi)string s1="hello world";char str[20]={0};
strcpy_s(str,s1.c_str());//char*類(lèi)賦值給string類(lèi)char str[20]="hello world";string s2;
s2=str;

同時(shí),string類(lèi)型的變量也可以使用字符數(shù)組的操作來(lái)改變其里面的某一個(gè)變量,例如

#include <iostream>#include <string>string s1="this is my house";int i;//如果我們現(xiàn)在想改變里面某一個(gè)字符,可以直接將s1當(dāng)成數(shù)組,找到對(duì)應(yīng)的下標(biāo)來(lái)改變i=6;
s[i]='t';//這樣就可以將第6個(gè)字符改成t了

有了 string 類(lèi),我們可以使用”+“或”+=“運(yùn)算符來(lái)直接拼接字符串,非常方便,再也不需要使用C語(yǔ)言中的 strcat()、strcpy()、malloc() 等函數(shù)來(lái)拼接字符串了,再也不用擔(dān)心空間不夠會(huì)溢出了,用”+“來(lái)拼接字符串時(shí),運(yùn)算符的兩邊可以都是 string 字符串,也可以是一個(gè) string 字符串和一個(gè)C風(fēng)格的字符串,還可以是一個(gè) string 字符串和一個(gè) char 字符。

string類(lèi)的賦值

string &operator=(const string &s);//把字符串s賦給當(dāng)前字符串 string &assign(const char *s);//用c類(lèi)型字符串s賦值string &assign(const char *s,int n);//用c字符串s開(kāi)始的n個(gè)字符賦值string &assign(const string &s);//把字符串s賦給當(dāng)前字符串string &assign(int n,char c);//用n個(gè)字符c賦值給當(dāng)前字符串string &assign(const string &s,int start,int n);//把字符串s中從start開(kāi)始的n個(gè)字符賦給當(dāng)前字符串string &assign(const_iterator first,const_itertor last);//把first和last迭代器之間的部分賦給字符串

string的連接

string &operator+=(const string &s);//把字符串s連接到當(dāng)前字符串的結(jié)尾 string &append(const char *s);//把c類(lèi)型字符串s連接到當(dāng)前字符串結(jié)尾string &append(const char *s,int n);//把c類(lèi)型字符串s的前n個(gè)字符連接到當(dāng)前字符串結(jié)尾string &append(const string &s);    //同operator+=()string &append(const string &s,int pos,int n);//把字符串s中從pos開(kāi)始的n個(gè)字符連接到當(dāng)前字符串的結(jié)尾string &append(int n,char c);        //在當(dāng)前字符串結(jié)尾添加n個(gè)字符cstring &append(const_iterator first,const_iterator last);//把迭代器first和last之間的部分連接到當(dāng)前字符串的結(jié)尾

string的子串string substr(int pos = 0,int n = npos) const;//返回pos開(kāi)始的n個(gè)字符組成的字符串

void swap(string &s2);    //交換當(dāng)前字符串與s2的值

string的查找

rfind() 和 find() 很類(lèi)似,同樣是在字符串中查找子字符串,不同的是 find() 函數(shù)從第二個(gè)參數(shù)開(kāi)始往后查找,而 rfind() 函數(shù)則最多查找到第二個(gè)參數(shù)處,如果到了第二個(gè)參數(shù)所指定的下標(biāo)還沒(méi)有找到子字符串,則返回一個(gè)無(wú)窮大值4294967295

int find(char c, int pos = 0) const;//從pos開(kāi)始查找字符c在當(dāng)前字符串的位置int find(const char *s, int pos = 0) const;//從pos開(kāi)始查找字符串s在當(dāng)前串中的位置int find(const char *s, int pos, int n) const;//從pos開(kāi)始查找字符串s中前n個(gè)字符在當(dāng)前串中的位置int find(const string &s, int pos = 0) const;//從pos開(kāi)始查找字符串s在當(dāng)前串中的位置int rfind(char c, int pos = npos) const;//從pos開(kāi)始從后向前查找字符c在當(dāng)前串中的位置int rfind(const char *s, int pos = npos) const;int rfind(const char *s, int pos, int n = npos) const;int rfind(const string &s,int pos = npos) const;//從pos開(kāi)始從后向前查找字符串s中前n個(gè)字符組成的字符串在當(dāng)前串中的位置,成功返回所在位置,失敗時(shí)返回string::npos的值

string類(lèi)的插入函數(shù):

string &insert(int p0, const char *s);string &insert(int p0, const char *s, int n);string &insert(int p0,const string &s);string &insert(int p0,const string &s, int pos, int n);//前4個(gè)函數(shù)在p0位置插入字符串s中pos開(kāi)始的前n個(gè)字符string &insert(int p0, int n, char c);//此函數(shù)在p0處插入n個(gè)字符citerator insert(iterator it, char c);//在it處插入字符c,返回插入后迭代器的位置void insert(iterator it, const_iterator first, const_iterator last);//在it處插入[first,last)之間的字符void insert(iterator it, int n, char c);//在it處插入n個(gè)字符c

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享C++中string類(lèi)對(duì)象如何使用內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!

新聞標(biāo)題:C++中string類(lèi)對(duì)象如何使用
分享路徑:http://chinadenli.net/article44/ppcoee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄App設(shè)計(jì)App開(kāi)發(fā)自適應(yīng)網(wǎng)站網(wǎng)站建設(shè)企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)