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">目標(biāo)文本</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)//在未被替換的文本中尋找目標(biāo)文本
{
int start = str.find(a, oldPos);//找到目標(biāo)文本的起始下標(biāo)
str.replace(start, a.size(), b);
//從str[start]開始到str[a.size()]替換為b
//str[start]到str[a.size()]也就是a所在得片段
oldPos = start + b.size();//記錄未替換文本的起始下標(biāo)
}
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的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用C++和OpenCV實現(xiàn)灰度圖蒙版GrayMask,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定參考價值,需要的可以參考一下2022-05-05
Qt/C++編寫視頻監(jiān)控系統(tǒng)之自定義音柱顯示功能
通過音柱控件實時展示當(dāng)前播放的聲音產(chǎn)生的振幅的大小,得益于音頻播放組件內(nèi)置了音頻振幅的計算,可以動態(tài)開啟和關(guān)閉,開啟后會對發(fā)送過來的要播放的聲音數(shù)據(jù),這篇文章主要介紹了Qt/C++編寫視頻監(jiān)控系統(tǒng)之自定義音柱顯示功能,需要的朋友可以參考下2024-01-01
函數(shù)指針與指針函數(shù)的學(xué)習(xí)總結(jié)
函數(shù)指針是指向函數(shù)的指針,指針函數(shù)是指一個函數(shù)的返回值是一個指針。以下就是對函數(shù)指針與指針函數(shù)的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下2013-07-07
淺析C++?atomic?和?memory?ordering
這篇文章主要介紹了C++?atomic?和?memory?ordering的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04

