一、substr函數
substr函數是C++中string類提供的成員函數,用於返回原字符串中指定位置開始的指定長度的子字符串,其語法如下:
string substr (size_t pos = 0, size_t len = npos) const;
其中,pos表示子字符串的起始位置,len表示子字符串的長度。如果省略len,則子字符串將一直延伸到原字符串的末尾。
下面是一個簡單的示例,展示如何使用substr函數截取字符串:
string str = "Hello, world!";
string sub_str = str.substr(7, 5); // 截取位置為7~11的子字符串
cout << sub_str << endl; // 輸出 world!
二、find和substr函數結合使用
find函數是C++中string類提供的成員函數,用於查找一個指定的子字符串,並返回其在原字符串中的起始位置。結合substr函數,我們可以從指定位置開始截取字符串。
下面是一個示例,展示如何使用find和substr函數結合使用截取字符串:
string str = "Hello, world!";
size_t pos = str.find("world"); // 查找world子字符串的位置
if(pos != string::npos) { // 如果找到了
string sub_str = str.substr(pos); // 截取位置為pos~末尾的子字符串
cout << sub_str << endl; // 輸出 world!
}
三、使用stringstream分割字符串
如果需要將一個字符串按照某個分隔符進行分割,可以使用stringstream類。sstream是C++中一個用於字符串流操作的類,它可以將字符串當成輸入流或輸出流進行處理。
下面是一個示例,展示如何使用stringstream類將一個字符串按照逗號分割:
#include <sstream>
string str = "apple,banana,orange";
stringstream ss(str);
string token;
while(getline(ss, token, ',')) {
cout << token << endl; // 分別輸出 apple、banana、orange
}
四、使用正則表達式分割字符串
如果需要按照更複雜的規則分割字符串,可以使用正則表達式。C++標準庫中提供了regex頭文件,其中包含了正則表達式相關的類和函數。下面是一個示例,展示如何使用正則表達式將一個字符串按照多個分隔符進行分割:
#include <regex>
string str = "apple bananas oranges";
regex re("\\s+|,");
sregex_token_iterator it(str.begin(), str.end(), re, -1);
sregex_token_iterator end;
while(it != end) {
cout << *it << endl; // 分別輸出 apple、bananas、oranges
++it;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/252173.html