c++ string常用操作詳解

背景

寫下這篇博客的原因是在力扣上刷題的時候遇到一個字符串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

參考—>這裏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章