天天看點

char截取字元串_字元串 — string

STL 中還有一個字元串類

初始化

string

類的初始化非常簡單直接,另外在現代的C++中不建議再使用老的

char*

了。

初始化也可以是複制另一個字元串

  • string s(str)

    s

    str

    的複制。
  • string s(str, strbegin, strlen)

    s

    str

    始于 strbegin 長為 strlen 的複制。
char截取字元串_字元串 — string

string 類的初始化方法

string s1 = "123";
string s2;
cin >> s2;  // 從輸入台讀入 s2 的内容
getline(cin, s2);
           

比較

string

類重載了運算符,是以可以直接用

==

>

等符号進行字元串的比較。

bool equal = (str == "1234"); // true
           

類方法

向字元串末尾添加可以直接使用

+=

運算符,也可以使用

append

push_back

這種函數。

string str = "123";
str += "4"; // +=, append(), push_back()都可以用來添加字元
           

可以用

empty()

方法判斷字元串是否為空。

size()

length()

方法都可以傳回字元串的長度。

bool empty = str.empty();
           

substr

方法截選子串

str.substr(str.length()-6, 6);  // 截取後6位子串
str.substr(1, 5);  // 從第 1 位開始,截選長度為 5 的子串。(第一個參數不能越界,第二個參數可以越界)
// str.substr(str.size(), 10) 是空串, str.substr(str.size() + 1, 10) 會報錯
           

data()

方法将内容以

字元數組

形式傳回,類似于Java的

toCharArray()

方法。

reserve()

方法:保留記憶體以存儲一定數量的字元

string

類還支援疊代器。

string

類可以用

[]

去取一個單獨的字元,傳回的是一個

char

類型的引用,可以用這種方式修改

string

。(注意不要像Python那樣用一個slice, [1:3]這樣,去截選子串哦)

char c = str[0];
for (char c : str) {
    // do sth.
}
           

algorithm包下的方法

  • 可以對字元串裡的

    char

    字元進行排序:

    sort(s.begin(), s.end());

  • 删除字元串的一個子串:

    s.erase(s.begin(), s.begin() + 3);

  • 字元串逆序

    reverse(s.begin(), s.end());