C++ string替換單個(gè)指定字符為其它字符問題
C++ string替換單個(gè)指定字符為其它字符
C++的string提供了replace方法,實(shí)現(xiàn)字符串的替換。但是涉及到將string串中的某個(gè)字符替換成新的字符的功能,在提供的replace方法中沒有實(shí)現(xiàn)。
在 #include<algorithm> 中也有一個(gè)replace方法,它可以實(shí)現(xiàn)我們想要的。
#include <algorithm>
int main()
{
string str = "[1,2,3,4,5]";
cout << str << endl;
replace(str.begin(), str.end(), ',', ' ');//將逗號(hào)替換為空格
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(), '\"', '@');//單字符替換-----將雙引號(hào)換成@符
如果有字符串替換的話需要配合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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++ OpenCV實(shí)現(xiàn)灰度圖蒙版GrayMask的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用C++和OpenCV實(shí)現(xiàn)灰度圖蒙版GrayMask,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定參考價(jià)值,需要的可以參考一下2022-05-05
Qt/C++編寫視頻監(jiān)控系統(tǒng)之自定義音柱顯示功能
通過音柱控件實(shí)時(shí)展示當(dāng)前播放的聲音產(chǎn)生的振幅的大小,得益于音頻播放組件內(nèi)置了音頻振幅的計(jì)算,可以動(dòng)態(tài)開啟和關(guān)閉,開啟后會(huì)對(duì)發(fā)送過來的要播放的聲音數(shù)據(jù),這篇文章主要介紹了Qt/C++編寫視頻監(jiān)控系統(tǒng)之自定義音柱顯示功能,需要的朋友可以參考下2024-01-01
函數(shù)指針與指針函數(shù)的學(xué)習(xí)總結(jié)
函數(shù)指針是指向函數(shù)的指針,指針函數(shù)是指一個(gè)函數(shù)的返回值是一個(gè)指針。以下就是對(duì)函數(shù)指針與指針函數(shù)的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下2013-07-07
基于C語言實(shí)現(xiàn)隨機(jī)點(diǎn)名器(附源碼)
這篇文章主要為大家詳細(xì)介紹如何基于C語言實(shí)現(xiàn)一個(gè)簡單的隨機(jī)點(diǎn)名器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手嘗試一下2022-07-07
淺析C++?atomic?和?memory?ordering
這篇文章主要介紹了C++?atomic?和?memory?ordering的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04

