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

    }

  • 相关阅读:
    yaffs和jffs2简单比较
    UBI文件系统简介
    非零即1的一种算法
    UBIFS介绍
    MTD
    ubifs & mtd
    ubifs笔记
    UBIFS 术语
    ubi层次
    faststone 注册码
  • 原文地址:https://www.cnblogs.com/time-is-life/p/9077945.html
Copyright © 2011-2022 走看看