背景
寫下這篇博客的原因是在力扣上刷題的時候遇到一個字符串URL的題目(這裏),裏面需要用到關於string的元素操作,自己不是很熟悉,於是找了資料整理並編寫代碼,關於字符串的操作大部分常用的都在這裏,希望和大家一起學習進步!
字符串常用操作
1.構造和初始化
提供 = 號,assign可以用於初始化,如下:
函數或者操作符 | 函數或者操作符作用 |
---|---|
string str = “handsome boy”; | 初始化一個字符串變量 |
string s(str); | 將字符串s賦值爲字符串str |
string s(str,idx); | 將字符串str始於idx的值賦值給s |
string s(str,idx,length) | 將str從idx開始長度爲length的部分賦值給s |
string s(num,c) | 將num個字符c賦值給s |
string s(str.begin(),str.end() | 將字符串strbegin到end的部分賦值給s |
s.~string() | 銷燬所有字符,釋放內存 |
s.assign(str,3,6) | 將str3-6的部分賦值給s |
s.assign(“good”); | 將s賦值“good” |
s.assign(5,‘a’); | s:aaaaa |
示例code:
#include<iostream>
#include<string>
using namespace std;
int main()
{
/***************Initialization********************/
string str = "handsome boy";
string s6,s7,s8, s9, s10;
string s1(str);
//string s2(s,3);
string s3(str,3,4);
string s4(4,'A');
string s5( s4.begin(), s4.end() );
s6.assign(str);
s7.assign(str, 2);
s8.assign(str, 1, 4 );
s9.assign(5, 'a');
//s10.assign('g',5);
/********************Results**********************/
cout << "str: " << str << endl;
cout << "s1: " << s1 << endl;
cout << "s3: " << s3 << endl;
cout << "s4: " << s4 << endl;
cout << "s5: " << s5 << endl;
cout << "s6: " << s6 << endl;
cout << "s7: " << s7 << endl;
cout << "s8: " << s8 << endl;
cout << "s9: " << s9 << endl;
str.~string();
}
結果:
2.其他操作
首先定義兩個字符串string str1, str2;
函數操作 | 函數意義 |
---|---|
str1.swap(str2) | 交換兩個字符串的元素 |
str1 += str2; | 將str2加到str1的尾部 |
str1.append(str2); | 在str1的尾部加字符串str2 |
str1.append(str2,1,3) | 將str2的第1-3位加到str1的尾部 |
str1.append(“good”) | 將C字符串“good”加到str1的尾部 |
str1.append(5, ‘x’) | 將5個字符‘x’ 加到str1的尾部 |
str1.push_back(‘a’) | 在str1的尾部加入一個字符’a’,注意的是push_back()只能加入一個字符 |
insert() | 在字符串的某個位置插入字符串,需要注意的是這個函數不支持插入單個字符,且插入時必須提供索引,將需要插入的字符串插入到索引後面 |
str1.insert(2, str2) | 在str1的第二個字符後插入字符串str2 |
str1.insert(2, “good”) | 同上 |
erase() | 刪除字符,str1.erase(2):刪除str1第二位之後的所有元素;str1.erase(2,5):從str1第二位往後刪5個 |
clear() | 刪除全部字符 |
[ ], at() | 讀取某一元素 |
str1.empty() | 判空 |
substr() | 這是一個比較重要而且少用的函數,具體用法爲參考以下 |
str1 = str2.substr() | 將str2全部賦值給str1 |
str1 = str2.substr(2,5) | 將str2從2開始往後5個元素賦值給str1 |
str1 = str2.substr(4) | 將str2從第4位往後全部賦值給str1 |
size(), length() | 現有字符串的字符數 |
data() | 將內容以字符數組形式返回 |
具體用法大家可以寫一個簡單示例運行即可,另歡迎指正!
其他操作示例代碼後續上傳:
示例code:
TODO
結果:
TODO
參考—>這裏