string 高頻使用部分

[TOC]

String

頭文件:include <string>
使用空間:using namesapce std;


創(chuàng)建字符串

  1. 復(fù)制拷貝
//直接全部復(fù)制
string str("01234");
//從下標(biāo)0開始復(fù)制3偏移量
string str("012345",3);
//從下標(biāo)1開始復(fù)制3偏移量
string str("012345",1,3);
  1. 用字符構(gòu)造
//用3個(gè)字符a構(gòu)造
string str(3,'a');
  1. “=”直接復(fù)制拷貝
string str = "str";

訪問元素方式,存取和修改

[],at

// [],at() :元素存取  
string stringAt = "trianglestring";  
cout << "stringAt[3] = " <<stringAt[3] << endl;  
cout << "stringAt.at(3) = " << stringAt.at(3) << endl;  

stringAt[3] = '6';  
stringAt.at(5) = '9';  
cout << "stringAt = " << stringAt << endl;

添加或者拼接字符/字符串

+ 、 append

string stringOrigin = "chen";  
string stringAppend = "yufeng";  
stringOrigin = stringOrigin + stringAppend;  
cout << "stringOrigin = " << stringOrigin << endl;  

stringOrigin.append("_OK");  
cout << "stringOriginAppend = " << stringOrigin << endl;

在指定位置插入字符串

insert

// insert:在指定position插入字符串  
string stringInsertOrigin = "trianglestring";  
stringInsertOrigin.insert(3, "__");  
cout << "stringInsertOrigin = " << stringInsertOrigin << endl;

替換字符串

replacea

// replace: 替換字符串,某個(gè)pos位置開始的size個(gè)字符替換成后面的“”字符串  
string stringReplaceOrigin = "trianglestring";  
stringReplaceOrigin.replace(3, 2, "66");  
cout << "stringReplaceOrigin = " << stringReplaceOrigin << endl;

取子字符串

substr

// substr  
  string stringSubstr = "trianglestring";  
  // 從索引為4開始的3個(gè)字符  
  cout << "stringSubstr.substr(4,3) = " << stringSubstr.substr(4,3) << endl;  
  
  // 從索引為4開始的所有字符  
  cout << "stringSubstr.substr(4) = " <<stringSubstr.substr(4) << endl;  
  
  // 整個(gè)字符  
  cout << "stringSubstr.substr() = " <<stringSubstr.substr() << endl;

查找字符/字符串

find,find_first_of,find_last_of

// find  
string stringFind = "trianglestring";  
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;

交換兩個(gè)字符串

swap

string str1 = "chen";  
string str2 = "yufeng";  
swap(str1, str2);

比較字符串:從開始的第一個(gè)字符比較,長(zhǎng)度是次要的

== 、!= 、 > 、<
compare

// ==份招,<,>,<=,>=:比較字符串  
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;  
}
// compare()  
string stringCompare = "trianglestring";  
int aaa = stringCompare.compare("chen"); // > 0  
int bbb = stringCompare.compare("trianglestring"); // == 0  
int ccc = stringCompare.compare("done"); // < 0  
cout << "aaa = " << aaa << ";bbb = " << bbb << ";ccc = " << ccc << endl;

刪除字符串或清空字符串

erase 指定刪除起始到偏移的字符
clear 清空字符串

// erase: 刪除字符
string stringEraseOrigin = "trianglestring";
stringEraseOrigin.erase(2,1);
cout << "stringEraseOrigin = " << stringEraseOrigin << endl;

// clear :刪除全部字符
string stringClearOrigin = "trianglestring";
stringClearOrigin.clear();
cout << "stringClearOrigin = " << stringClearOrigin << endl;

字符串長(zhǎng)度

size,length 沒有區(qū)別
empty 判空

// size(), length():計(jì)算字符串長(zhǎng)度  
string stringCount = "trianglestring";  
cout << "stringSize = " << stringCount.size() << endl;  
cout << "stringLength = " << stringCount.length() << endl;
// 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;  
}

最大容量

max_size

// max_size: 最大能表示的字符串長(zhǎng)度 
string stringMaxSize;  
cout << "stringMaxSize = " << stringMaxSize.max_size() << endl;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市狞甚,隨后出現(xiàn)的幾起案子锁摔,更是在濱河造成了極大的恐慌,老刑警劉巖哼审,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谐腰,死亡現(xiàn)場(chǎng)離奇詭異孕豹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)怔蚌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門巩步,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人桦踊,你說我怎么就攤上這事椅野。” “怎么了籍胯?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵竟闪,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我杖狼,道長(zhǎng)炼蛤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任蝶涩,我火速辦了婚禮理朋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绿聘。我一直安慰自己嗽上,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布熄攘。 她就那樣靜靜地躺著兽愤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪挪圾。 梳的紋絲不亂的頭發(fā)上浅萧,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音哲思,去河邊找鬼洼畅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛棚赔,可吹牛的內(nèi)容都是我干的土思。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼忆嗜,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了崎岂?” 一聲冷哼從身側(cè)響起捆毫,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎冲甘,沒想到半個(gè)月后绩卤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體途样,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年濒憋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了何暇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凛驮,死狀恐怖裆站,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嗓袱,我是刑警寧澤吞获,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布坟比,位于F島的核電站,受9級(jí)特大地震影響肩袍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜婚惫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一氛赐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧先舷,春花似錦艰管、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至尔破,卻和暖如春街图,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背懒构。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工餐济, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胆剧。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓絮姆,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親秩霍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子篙悯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 【轉(zhuǎn)載】原文地址:std::string詳解作者:kieven2008 之所以拋棄char*的字符串而選用C++標(biāo)...
    VAYY閱讀 644評(píng)論 0 2
  • 本文轉(zhuǎn)自:http://www.cnblogs.com/lidabo/p/5225868.html 1)字符串操作...
    XiaohuiLI閱讀 9,521評(píng)論 0 0
  • 一、字符串操作 strcpy(p, p1) 復(fù)制字符串 strncpy(p, p1, n) 復(fù)制指定長(zhǎng)度字符串 s...
    JaiUnChat閱讀 1,659評(píng)論 0 7
  • 今天我聽了時(shí)間管理100講的第十講和十一講铃绒,在這兩節(jié)中,提到了一次只做一件事和專注的力量颠悬。 在第10...
    迭代鳳兒閱讀 583評(píng)論 0 1
  • 你去哪里矮燎? 去故事開始的地方 去干嘛定血? 去結(jié)束 —————— 才不會(huì)想 其實(shí)很想 —————— 我一直以為自己肯定...
    無定向性空間閱讀 151評(píng)論 0 0