标准库类型String
定義和初始化string對(duì)象
初始化string對(duì)象方式
string s1? ?默認(rèn)初始化,s1是一個(gè)空串
string s2(s1)? s2是s1的副本
string s2 = s1? 等價(jià)于s2(s1), s2是s1的副本
string s3("value")? s3是字面值"value"的副本,除了字面值最后的那個(gè)空字符外 //直接初始化
string? s3 = "value"? 等價(jià)于s3("value"),s3 是字面值"value" 的副本 //拷貝初始化
string s4(n,'c')? 把s4初始化為由連續(xù)n個(gè)字符c組成的串 //直接初始化
直接初始化和拷貝初始化? ?在上面的初始化方式中有說(shuō)明
?
string 對(duì)象上 操作
?String? 的empty和size操作
empty判斷string對(duì)象是否為空,返回值為布爾值
size函數(shù)返回string對(duì)象的長(zhǎng)度
比較string對(duì)象
運(yùn)算符都依照大小寫敏感的字典順序來(lái)進(jìn)行比較。
兩個(gè)string對(duì)象相加
兩個(gè)string對(duì)象相加得到一個(gè)新的string對(duì)象。其內(nèi)容是左側(cè)運(yùn)算對(duì)象和右側(cè)運(yùn)算對(duì)象串接而成,類似于: "hello" + "world" = "hello world";
字面值和string對(duì)象相加
當(dāng)把string對(duì)象和字符字面值及字符串字面值混在一條語(yǔ)句中使用時(shí),必須要保證每個(gè)加法運(yùn)算符的兩側(cè)的運(yùn)算對(duì)象至少有一個(gè)是string
string s5 = "hello" + ",? "? //錯(cuò)誤,兩個(gè)對(duì)象都不是string,不能把字面值直接相加。
處理string對(duì)象中的字符
?使用基于范圍的for語(yǔ)句處理每個(gè)字符
string str("some string");
for(auto c:str )
cout<<c<<endl;? //將str字符串中的每個(gè)字符每行一個(gè)輸出出來(lái)。
使用范圍for語(yǔ)句改變字符串中的字符
string s("HELLO WORLD"); for (auto &c : s) //注意這里的c前有& c = toupper(c);這里的c是引用,賦值語(yǔ)句將改變s中的字符的值。
只處理一部分字符:
下標(biāo)運(yùn)算符:s[i] 直接改
下標(biāo)執(zhí)行迭代(就是在for循環(huán)中加控制條件,將要更改的字符提取出來(lái)更改就OK了)
使用下標(biāo)執(zhí)行隨機(jī)訪問(wèn)
一個(gè)小練習(xí):
?
1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 6 int main() 7 { 8 string str("extraordinary"); 9 10 for (auto &c : str) 11 { 12 c = 'x'; 13 } 14 cout << str << endl; 15 16 system("pause"); 17 return 0; 18 }?
?
轉(zhuǎn)載于:https://www.cnblogs.com/xingzhuan/p/10567194.html
總結(jié)
以上是生活随笔為你收集整理的标准库类型String的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梦到吃肉粥是什么意思
- 下一篇: Codeforces Round #36