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

    }

  • 相关阅读:
    C#面向对象编程
    WPF Storyboard的启动
    WPF中的窗体Show()和ShowDialog()区别。
    四元数
    小学生四则运算
    小学生四则运算
    javascript ===与==的区别
    a标签的href与onclick中使用js的区别
    10步让你成为更优秀的程序员
    检查SQL Server被哪个进程占用,且杀进程。
  • 原文地址:https://www.cnblogs.com/time-is-life/p/9077945.html
Copyright © 2020-2023  润新知