一、字元串初始化和賦值方法
在使用C++的string類時,我們需要初始化或賦值給string對象某個字元串。下面總結了幾種方法:
1、使用雙引號創建,如:string str(“Hello World!”)
2、使用等號賦值,如:string str = “Hello World!”
3、使用成員函數assign(),如:str.assign(“Hello World!”)
4、使用拷貝構造函數,如:string str_another(str)
除了以上四種方式外,還可以使用將其他數據類型轉換為string對象的to_string()函數。
string str_num = to_string(1234); //將整型1234轉換為字元串"1234"
二、字元串截取方法
在處理字元串時,常常需要截取其中一部分進行操作或者顯示。下面介紹幾個常用的方法:
1、下標運算符([])
我們可以像數組一樣,使用下標運算符來訪問字元串中的某個字元。
string str = "Hello World!"; char c = str[1]; //將字元'e'賦值給c
2、函數substr()
函數substr()可以截取字元串的一部分,具體使用方法如下:
string str = "Hello World!"; string sub_str = str.substr(6, 5); //從下標為6的字元開始,截取5個字元
substr()函數的第一個參數指定了開始截取的下標,第二個參數指定了要截取的字元數。如果只指定一個參數,則從指定下標開始截取到字元串末尾。
三、字元串連接方法
在C++中,可以使用加號運算符(+)進行兩個字元串的連接,如:
string str1 = "Hello"; string str2 = "World!"; string str = str1 + " " + str2; //字元串連接得到"Hello World!"
此外,還可以使用成員函數append()進行字元串的連接,其使用方法如下:
string str1 = "Hello"; string str2 = "World!"; str1.append(str2); //將"World!"連接到"Hello"之後,str1變為"HelloWorld!"
四、其他常用函數
除了上述的初始化、截取和連接方法外,C++中還提供了一些常用的函數,如下所示:
1、函數length()和size()
這兩個函數都可以返回字元串的長度,用法相同:
string str = "Hello World!"; int len = str.length(); //len的值為12 int size = str.size(); //size的值為12
2、函數empty()
函數empty()可以判斷字元串是否為空,返回值為bool類型。
string str1 = "Hello World!"; string str2; if(str1.empty()) { //字元串為空,不執行操作 } if(str2.empty()) { //字元串為空,執行操作 }
3、函數find()
函數find()可以在字元串中查找指定的子字元串,並返回其第一次出現的位置。具體使用方法如下:
string str = "Hello World!"; int pos = str.find("World"); //pos的值為6
4、函數replace()
函數replace()可以替換字元串中指定位置的字元或子字元串,具體使用方法如下:
string str = "Hello World!"; str.replace(6, 5, "China"); //將字元串"World"替換為"China",str的值變為"Hello China!"
五、代碼示例
#include <iostream> #include <string> using namespace std; int main() { //字元串初始化和賦值方法 string str1("Hello World!"); string str2 = "Hello China!"; string str3; str3.assign("Hello Japan!"); string str4(str1); //字元串截取方法 char c = str1[1]; //將字元'e'賦值給c string sub_str = str2.substr(6, 5); //從下標為6的字元開始,截取5個字元 //字元串連接方法 string str5 = str1 + " " + str2; str4.append("-").append("2020"); //其他常用函數 int len = str1.length(); //len的值為12 bool is_empty = str3.empty(); //is_empty的值為false int pos = str1.find("World"); //pos的值為6 str1.replace(6, 5, "China"); //將字元串"World"替換為"China",str的值變為"Hello China!" cout << str1 << endl; cout << str2 << endl; cout << str3 << endl; cout << str4 << endl; cout << str5 << endl; cout << sub_str << endl; return 0; }
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/195855.html