HOW TO REPLACE ALL OCCURRENCES OF A CHARACTER IN A STD::STRING

Posted 人最大的荣耀不在于从未失败,而在于每次失败以后都能东山再起

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HOW TO REPLACE ALL OCCURRENCES OF A CHARACTER IN A STD::STRING相关的知识,希望对你有一定的参考价值。

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.

  1. Use std::replace()
  2. Use std::replace_copy
  3. Use boost_replace_all
  4. Use boost_replace_all_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的主要内容,如果未能解决你的问题,请参考以下文章

How to publish a Linux package to mirror All In One

How to fix use the cURL to connect to GitHub with a 443 HTTPS error All In One

LeetCode --- 1576. Replace All ?‘s to Avoid Consecutive Repeating Characters 解题报告

LeetCode --- 1576. Replace All ?‘s to Avoid Consecutive Repeating Characters 解题报告

How To Kill All SPID In Database or Multiple Databases In Sql Server

How to use Linux shell command filter the IP address All In One