zoukankan      html  css  js  c++  java
  • 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 << " ";

    }

    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(), '');

        std::replace_copy(str1.begin(), str1.end(), str2.begin(), '+', ' ');

        std::cout << str2 << " ";

    }

    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 << " ";

    }

    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 << " ";

    }

  • 相关阅读:
    JS中的call()和apply()方法和bind()
    reactjs入门到实战(十)----one-first_app
    49-Reverse Linked List II
    48-Merge Sorted Array
    47-Generate Parentheses
    46.Valid Parentheses
    45-Letter Combinations of a Phone Number
    44-Count and Say
    43-Reverse Nodes in k-Group
    42-Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/time-is-life/p/9077945.html
Copyright © 2011-2022 走看看