C++ string替換單個指定字符為其它字符問題
更新時間:2023年06月06日 09:35:45 作者:Pisces_224
這篇文章主要介紹了C++ string替換單個指定字符為其它字符問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
C++ string替換單個指定字符為其它字符
C++的string提供了replace方法,實現(xiàn)字符串的替換。但是涉及到將string串中的某個字符替換成新的字符的功能,在提供的replace方法中沒有實現(xiàn)。
在 #include<algorithm> 中也有一個replace方法,它可以實現(xiàn)我們想要的。
#include <algorithm> int main() { string str = "[1,2,3,4,5]"; cout << str << endl; replace(str.begin(), str.end(), ',', ' ');//將逗號替換為空格 cout << str << endl; }
[1,2,3,4,5]
[1 2 3 4 5]
C++ std::string 字符串替換
std::string
里面std::replace
只有單字符替換
std::replace(str.begin(), str.end(), '\"', '@');//單字符替換-----將雙引號換成@符
如果有字符串替換的話需要配合find()
使用
/// <summary> /// 字符串批量替換 /// </summary> /// <param name="str">輸入的文本</param> /// <param name="a">目標文本</param> /// <param name="b">替換內(nèi)容</param> /// <returns>替換好的文本</returns> std::string spp(std::string str, std::string a, std::string b) { int oldPos = 0; while (str.find(a, oldPos) != -1)//在未被替換的文本中尋找目標文本 { int start = str.find(a, oldPos);//找到目標文本的起始下標 str.replace(start, a.size(), b); //從str[start]開始到str[a.size()]替換為b //str[start]到str[a.size()]也就是a所在得片段 oldPos = start + b.size();//記錄未替換文本的起始下標 } return str; }
int main() { std::string str = "{\"QQ1\":123,\"QQ2\":123,\"QQ3\":123}"; str = spp(str, "123", "321"); std::cout << str << std::endl; str = spp(str, "\"", "\\\""); std::cout << str << std::endl; }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++ OpenCV實現(xiàn)灰度圖蒙版GrayMask的示例代碼
這篇文章主要為大家詳細介紹了如何利用C++和OpenCV實現(xiàn)灰度圖蒙版GrayMask,文中的示例代碼講解詳細,對我們學習或工作有一定參考價值,需要的可以參考一下2022-05-05Qt/C++編寫視頻監(jiān)控系統(tǒng)之自定義音柱顯示功能
通過音柱控件實時展示當前播放的聲音產(chǎn)生的振幅的大小,得益于音頻播放組件內(nèi)置了音頻振幅的計算,可以動態(tài)開啟和關(guān)閉,開啟后會對發(fā)送過來的要播放的聲音數(shù)據(jù),這篇文章主要介紹了Qt/C++編寫視頻監(jiān)控系統(tǒng)之自定義音柱顯示功能,需要的朋友可以參考下2024-01-01淺析C++?atomic?和?memory?ordering
這篇文章主要介紹了C++?atomic?和?memory?ordering的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04