C++教程:字符串的使用-創(chuàng)新互聯(lián)

我們才開始接觸用C語言來處理字符串的時(shí)候,肯定會(huì)覺得怎么會(huì)如此麻煩呢?今天,小編就給大家總結(jié)出這方面的一些知識(shí),C++中最高頻的字符串處理函數(shù)。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括城北網(wǎng)站建設(shè)、城北網(wǎng)站制作、城北網(wǎng)頁制作以及城北網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,城北網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到城北省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

首先要引入C++中的字符串頭文件:

#include

請(qǐng)注意,這里的頭文件是沒有.h的,否則就成了C語言中的頭文件了。

(1)創(chuàng)建字符串

創(chuàng)建字符串有好幾種構(gòu)造方式,最典型的方式就是使用復(fù)制構(gòu)造函數(shù),

string str("chenyufeng",3);

cout << str << endl;

cout 拷貝原先的字符串開頭處的3個(gè)字符最為最新的字符串。打印結(jié)果為che.

string str2("chenyufeng",2,3);

cout << str2 << endl;

cout 拷貝原先字符串index=2開始處的3個(gè)字符最為新的字符串。打印結(jié)果為eny。

// = :字符串賦值

str2 = "Robert";

cout << str2 << endl;

同樣也可以用直接賦值的方式為某個(gè)變量賦值字符串,使用”=“。打印結(jié)果為Robert.

(2)swap:交換兩個(gè)字符串的值

// swap:交換兩個(gè)字符串的值

string string1 = "chen";

string string2 = "yufeng";

swap(string1, string2);

cout << "string1 = " << string1 << ";string2 = " << string2 << endl;

打印結(jié)果就已經(jīng)和原先的字符串的值交換了。

(3)+,append :添加字符串

// += ,append:在尾部添加字符串

string stringOrigin = "chen";

string stringAppend = "yufeng";

stringOrigin = stringOrigin + stringAppend;

cout << "stringOrigin = " << stringOrigin << endl;

stringOrigin.append("_OK");

cout << "stringOriginAppend = " << stringOrigin << endl;

注意,添加字符串操作是會(huì)修改原先的字符串的??梢灾苯邮褂?號(hào)進(jìn)行字符串的添加,非常方便。

(4)insert:在指定位置插入字符串

// insert:在指定position插入字符串

string stringInsertOrigin = "chenyufeng";

stringInsertOrigin.insert(3, "__");

cout << "stringInsertOrigin = " << stringInsertOrigin << endl;

上述代碼可以在indx=3位置插入__下劃線,打印結(jié)果為 che__nyufeng.

(5)erase,clear刪除字符串

// erase: 刪除字符

string stringEraseOrigin = "chenyufeng";

stringEraseOrigin.erase();

cout << "stringEraseOrigin = " << stringEraseOrigin << endl;

// clear :刪除全部字符

string stringClearOrigin = "chenyufeng";

stringClearOrigin.clear();

cout << "stringClearOrigin = " << stringClearOrigin << endl;

上述操作其實(shí)都是把字符串清空了。

(6)replace:替換字符串

// replace: 替換字符串,某個(gè)pos位置開始的size個(gè)字符替換成后面的“”字符串

string stringReplaceOrigin = "chenyufeng";

stringReplaceOrigin.replace(3, 2, "66");

cout << "stringReplaceOrigin = " << stringReplaceOrigin << endl;

上述代碼把字符串從index=3開始的2個(gè)字符替換成”66“,打印結(jié)果為che66ufeng.

(7)==,, =: 比較字符串大小

C++中使用這種運(yùn)算符對(duì)字符串進(jìn)行操作,其實(shí)都是用了運(yùn)算符重載。字符串比較大小是根據(jù)字母的字典序或者說是ASCII碼值按順序比較大小。直到比較出兩個(gè)字符串的不同字母或者比較到某個(gè)字符串的最后一位停止。

// ==,<,>,<=,>=:比較字符串

string stringLeft = "zhen";

string stringRight = "yufeng";

if (stringLeft == stringRight)

{

cout << "equal" << endl;

}

if (stringLeft != stringRight)

{

cout << "not equal" << endl;

}

if (stringLeft < stringRight)

{

cout << "stringLeft < stringRight" << endl;

}

if (stringLeft > stringRight)

{

cout << "stringLeft > stringRight" << endl;

}

(8)size,length:計(jì)算字符串長(zhǎng)度

這里的計(jì)算字符串長(zhǎng)度和C語言中不同,是不包括末尾的的,計(jì)算的是真實(shí)的長(zhǎng)度。

// size(), length():計(jì)算字符串長(zhǎng)度

string stringCount = "chenyufeng";

cout << "stringSize = " << stringCount.size() << endl;

cout << "stringLength = " << stringCount.length() << endl;

上述的打印結(jié)果都是10.

(9)empty:判斷字符串是否為空

// empty():判斷字符串是否為空

string stringIsEmpty = "";

string stringNotEmpty = "chen";

if (stringIsEmpty.empty())

{

cout << "stringIsEmpty == empty" << endl;

}

else

{

cout << "stringIsEmpty != empty" << endl;

}

if (stringNotEmpty.empty())

{

cout << "stringNotEmpty == empty" << endl;

}

else

{

cout << "stringNotEmpty != empty" << endl;

}

(10)字符串的輸入輸出流

// 輸入輸出stream

cout << "請(qǐng)輸入一個(gè)字符串"<

string stringInput;

cin >> stringInput;

cout << "stringInput = " << stringInput << endl;

字符串也可以類似于C++其他數(shù)據(jù)類型一樣使用輸入輸出流??梢允褂没剀囨I結(jié)束輸入流。

(11)max_size:字符串的大可容納量。

// max_size:

string stringMaxSize;

cout << "stringMaxSize = " << stringMaxSize.max_size() << endl;

打印結(jié)果為:18446744073709551599 。表示該字符串可以容納這么多的字符數(shù)。

(12)[], at :元素存取與修改

// [],at() :元素存取

string stringAt = "chenyufeng";

cout << "stringAt[3] = " <

cout << "stringAt.at(3) = " << stringAt.at(3) << endl;

stringAt[3] = '6';

stringAt.at(5) = '9';

cout << "stringAt = " << stringAt << endl;

字符串可以和數(shù)組一樣進(jìn)行操作,使用下標(biāo)進(jìn)行存取,并可以進(jìn)行修改原字符串。

(13)compare:字符串的比較,返回0,1 ,-1。

// compare()

string stringCompare = "chenyufeng";

int aaa = stringCompare.compare("chen"); // > 0

int bbb = stringCompare.compare("chenyufeng"); // == 0

int ccc = stringCompare.compare("done"); // < 0

cout << "aaa = " << aaa << ";bbb = " << bbb << ";ccc = " << ccc << endl;

(14)substr:取子字符串

// substr

string stringSubstr = "chenyufeng";

// 從索引為4開始的3個(gè)字符

cout << "stringSubstr.substr(4,3) = " << stringSubstr.substr(4,3) << endl;

// 從索引為4開始的所有字符

cout << "stringSubstr.substr(4) = " <

// 整個(gè)字符

cout << "stringSubstr.substr() = " <

(15)find:查找某個(gè)字符

// find

string stringFind = "chenyufeng";

stringFind.find('n');

cout << "stringFind.find('n') = " << stringFind.find('n') << endl;

cout << "stringFind.find_first_of('e') = " << stringFind.find_first_of('e') << endl;

cout << "stringFind.find_last_of('e') = " << stringFind.find_last_of('e') << endl;

默認(rèn)find函數(shù)是返回某個(gè)字符第一次出現(xiàn)的下標(biāo)index。find_first_of和find_last_of則分別是第一次和最后一次出現(xiàn)某個(gè)字符的index。

上述15個(gè)C++中的字符串處理函數(shù)是最為常見的,當(dāng)然其他還有不少,我會(huì)在在后續(xù)的使用中繼續(xù)補(bǔ)充。string其實(shí)也是STL中的一部分。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站欄目:C++教程:字符串的使用-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://bm7419.com/article8/cescip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、虛擬主機(jī)、Google、網(wǎng)站建設(shè)微信公眾號(hào)、云服務(wù)器

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)