C++ string替換單個(gè)指定字符為其它字符問(wèn)題
C++ string替換單個(gè)指定字符為其它字符
C++的string提供了replace方法,實(shí)現(xiàn)字符串的替換。但是涉及到將string串中的某個(gè)字符替換成新的字符的功能,在提供的replace方法中沒(méi)有實(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]開(kāi)始到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++標(biāo)準(zhǔn)模板庫(kù)STL(Standard Template Library)全解析
C++標(biāo)準(zhǔn)模板庫(kù)(STL)是一套功能強(qiáng)大的模板類(lèi)和函數(shù)集合,用于提供通用的、可復(fù)用的算法和數(shù)據(jù)結(jié)構(gòu),STL分為容器、迭代器、算法、函數(shù)對(duì)象、適配器和分配器等組件,廣泛應(yīng)用于C++編程中,本文介紹C++標(biāo)準(zhǔn)模板庫(kù)STL(Standard Template Library)詳解,感興趣的朋友一起看看吧2026-01-01
C語(yǔ)言編程中從密碼文件獲取數(shù)據(jù)的函數(shù)總結(jié)
這篇文章主要介紹了C語(yǔ)言編程中從密碼文件獲取數(shù)據(jù)的函數(shù)總結(jié),包括getpw()函數(shù)和getpwnam()函數(shù)以及getpwuid()函數(shù),需要的朋友可以參考下2015-08-08
圖文詳解C語(yǔ)言位運(yùn)算基礎(chǔ)知識(shí)
這篇文章主要以圖文結(jié)合的方式為大家詳細(xì)介紹了C語(yǔ)言位運(yùn)算基礎(chǔ)知識(shí),感興趣的小伙伴們可以參考一下2016-07-07
C++使用LibCurl實(shí)現(xiàn)Web隱藏目錄掃描功能
LibCurl是一個(gè)開(kāi)源的免費(fèi)的多協(xié)議數(shù)據(jù)傳輸開(kāi)源庫(kù),該框架具備跨平臺(tái)性,開(kāi)源免費(fèi),并提供了包括HTTP、FTP、SMTP、POP3等協(xié)議的功能,本文將給大家介紹C++使用LibCurl實(shí)現(xiàn)Web隱藏目錄掃描功能2023-11-11
Qt圖形圖像開(kāi)發(fā)曲線圖表模塊QChart庫(kù)基本用法、各個(gè)類(lèi)之間的關(guān)系說(shuō)明
這篇文章主要介紹了Qt圖形圖像開(kāi)發(fā)曲線圖表模塊QChart庫(kù)基本用法、各個(gè)類(lèi)之間的關(guān)系說(shuō)明,需要的朋友可以參考下2020-03-03

