码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-05-23 18:09:00      阅读:172      评论:0      收藏:0      [点我收藏+]

标签: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.

  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

标签:tab   pac   standard   nta   int   ade   char   cte   width   

原文地址:https://www.cnblogs.com/time-is-life/p/9077945.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!