C++:string字符串的切片方式
C++:string字符串的切片
string字符串在C++中不能直接進行切片操作,需要借助函數(shù)find和substr進行
1.substr用于進行已知序號的切片操作
substr語法為 :
string對象.substr(起點 , 切片長度)
operate_str = initial_str.substr(0, 3);
代碼演示如下
?? ?//使用substr函數(shù)實現(xiàn)已知序號的字符串切片 ?? ?string initial_str = "0123456789"; ?? ?string operate_str; ?? ?operate_str = initial_str.substr(0, 3); //從0號開始,切片長度為3,即截取0到(0 + 3 - 1)號 ?? ?cout << "operate_str = " << operate_str << endl; //輸出結(jié)果為012
2.find函數(shù)和substr函數(shù)
配合用于進行已知特征字符串的字符串切片
find函數(shù)處理對象中存在特征字符串時返回特征串第一個字符的序號,若對象中不存在特征字符串則返回-1
find函數(shù)語法為:
string對象.find(特征字符串)
int start = initial_str.find(key1);?
以下配合substr實現(xiàn)已知特征字符串的字符串切片
?? ?//使用substr函數(shù)配合find函數(shù)實現(xiàn)已知特征串的字符串切片 ?? ?string key1 = "23"; //定義特征串 ?? ?int len = 5; //定義切片長度 ?? ?int start = initial_str.find(key1); //返回特征串第一個字符的序號,此處為2 ?? ?string key2 = "abc"; //測試不存在特征串返回值 ?? ?int result = initial_str.find(key2); ?? ?cout << "result = " << result << endl; //對象中不存在特征串,此處輸出為 -1 ?? ?operate_str = initial_str.substr(start, len); //從start開始,切片長度為len,即截取start到(start + len - 1)號 ?? ?cout << "operate_str = " << operate_str << endl; //輸出結(jié)果為23456
(變量與只使用substr時相同)
C++特定分隔符將字符串進行分割
使用特定分隔符’\n’將字符串進行分割,如傳參數(shù)“2023\n01\n13”,則輸出結(jié)果為
2023
01
13
void SplitString(std::string str){ if(str.empty()){ return; } vector<std::string> res; const char split = '\n'; //分割符 std::string strs = str + split; size_t i = 0; size_t pos = strs.find(split,i); while(pos ! = strs.npos){ string temp = strs.substr(i, pos - i); res.push_back(temp); i = pos + 1; pos = strs.find(split,i) } for(int i=0;i<res.size();i++){ cout>>res.[i]>>endl; } }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
C語言中不定參數(shù)?...?的語法以及函數(shù)封裝
不定參數(shù)是指函數(shù)可以接收不確定個數(shù)的參數(shù),下面這篇文章主要給大家介紹了關于C語言中不定參數(shù)?...?的語法以及函數(shù)封裝的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-01-01使用Cline+deepseek實現(xiàn)VsCode自動化編程
Cline是一個免費且強大的VSCode插件,可以接入多種大模型API進行對話式編程,本文主要介紹了使用Cline+deepseek實現(xiàn)VsCode自動化編程,具有一定的參考價值,感興趣的可以了解一下2025-01-01vs2022項目文件夾內(nèi).vs文件夾容量虛高問題的解決
經(jīng)常會發(fā)現(xiàn)VS的項目文件夾占用空間很大,本文主要介紹了vs2022項目文件夾內(nèi).vs文件夾容量虛高問題的解決,具有一定的參考價值,感興趣的可以了解一下2023-09-09C++中的不規(guī)則二維數(shù)組實現(xiàn)代碼
本文介紹了一個在C++中保存不定長二維數(shù)組的數(shù)據(jù)結(jié)構(gòu),在這個結(jié)構(gòu)中,我們使用了一個含有指針和數(shù)組長度的結(jié)構(gòu)體,用這樣的一個結(jié)構(gòu)體構(gòu)造一個結(jié)構(gòu)體數(shù)組,用于存儲每一個不定長的數(shù)組,感興趣的朋友一起看看吧2024-03-03