标签:tab pac standard nta int ade char cte width
From: http://www.martinbroadhurst.com/replacing-all-occurrences-of-a-character-in-a-stdstring.html
This can be done using the standard library or Boost. The advantage of using Boost is that you get Boost ranges, which mean that you don’t need to specify the beginning and end of the string.
With both libraries, the replacement can be made on the original string or a copy.
Method 1: Use std::replace()
1 2 3 4 5 6 7 8 9 10 |
#include <iostream> #include <string> #include <algorithm>
int main() { std::string str("Quick+brown+fox"); std::replace(str.begin(), str.end(), ‘+‘, ‘ ‘); std::cout << str << "\n"; } |
Method 2: Use std::replace_copy
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> #include <string> #include <algorithm>
int main() { std::string str1("Quick+brown+fox"); std::string str2(str1.size(), ‘\0‘); std::replace_copy(str1.begin(), str1.end(), str2.begin(), ‘+‘, ‘ ‘); std::cout << str2 << "\n"; } |
Method 3: Use boost_replace_all
1 2 3 4 5 6 7 8 9 10 |
#include <iostream> #include <string> #include <boost/algorithm/string/replace.hpp>
int main() { std::string str("Quick+brown+fox"); boost::replace_all(str, "+", " "); std::cout << str << "\n"; } |
Method 4: Use boost_replace_all_copy
1 2 3 4 5 6 7 8 9 10 |
#include <iostream> #include <string> #include <boost/algorithm/string/replace.hpp>
int main() { std::string str1("Quick+brown+fox"); std::string str2 = boost::replace_all_copy(str1, "+", " "); std::cout << str2 << "\n"; } |
HOW TO REPLACE ALL OCCURRENCES OF A CHARACTER IN A STD::STRING
标签:tab pac standard nta int ade char cte width
原文地址:https://www.cnblogs.com/time-is-life/p/9077945.html