C++ boost::algorithm::string::replace_first()

C++ boost::algorithm::string::replace_first()


     This function is included in the "boost/algorithm/string" library. This library contains some brilliant methods which  help in accomplishing string manipulations that are lacking in STL library. 

This function is used to replace the first instance of the specified pattern in the input string with a new pattern. It first performs a search for the specified pattern to be replaced and then it replaces the first instance of the given pattern with a new one.

header file:





    input_string : an input string

    seacrh_string : the pattern that has to be replaced in the input_string;

format_string : the pattern that replaces the search_string.

replace_first() performs an inplace replacement. There is another variation present replace_first_copy() which instead of doing an inplace replacement, returns a copy of the modified string.

replace_first() performs a case-sensistive search. There is another variation present ireplace_first() which performs a case-insensitive search. Similarly ireplace_first_copy() returns a copy of modified string instead of doing an inplace replacement.


#include<iostream> #include<boost/algorithm/string.hpp> #include<boost/range.hpp> #include<string> using namespace std; using namespace boost; using namespace boost::algorithm; int main() { string s1 = "Hello and Welcome to STL libraries"; replace_first(s1,"STL","Boost"); string s2 = replace_first_copy(s1,"Hello","Hi"); string s3 = replace_first_copy(s1,"and","Guys"); string s4 = ireplace_first_copy(s1,"HELLO","HI"); cout<<s1<<endl; cout<<s2<<endl; cout<<s3<<endl; cout<<s4<<endl; }



As we can observe from the output we are first performing an inplace first where we are replacing "STL" with "Boost". Next we are performing replace on copy of the original string. In s4, we are storing   the string obtained after performing replacement while searching case-insensitively.

More Articles of Md Safi Ur Rahman Khan:

Name Views Likes
C++ boost::algorithm::string::join() 577 0
C++ boost::algorithm::string::split() 607 0
C++ boost::algorithm::string::find_all() 647 0
C++ boost::algorithm::string::erase_tail() 249 0
C++ boost::algorithm::string::replace_tail() 212 0
C++ boost::algorithm::string::erase_head() 277 0
C++ boost::algorithm::string::replace_head() 210 0
C++ boost::algorithm::string::erase_all() 896 1
C++ boost::algorithm::replace_all() 2050 0
C++ boost::algorithm::string::erase_nth() 215 0
C++ boost::algorithm::string::replace_nth() 221 0
C++ boost::algorithm::string::replace_last() 247 0
C++ boost::algorithm::string::erase_last() 244 0
C++ boost::algorithm::string::erase_first() 215 1
C++ boost::algorithm::string::replace_first() 433 0
C++ boost::algorithm::string::find_token() 351 0
C++ boost::algorithm::string::find_tail() 200 1
C++ boost::algorithm::string::find_head() 213 0
C++ boost::algorithm::string::find_last() 301 1
C++ boost::algorithm::string::find_first() 749 1
C++ boost::algorithm::string::all() 225 1
C++ boost::algorithm::string::lexicographical_compare() 214 0
C++ boost::algorithm::string::equals() 378 0
C++ boost::algorithm::string::contains() 1826 0
C++ boost::algorithm::string::ends_with() 1283 0
C++ boost::algorithm::string::starts_with() 2059 0
C++ boost::algorithm::string::trim_if() 712 1
C++ boost::algorithm::string::trim() 3797 0
C++ boost::algorithm::string::trim_right_if() 522 1
C++ boost::algorithm::string::trim_left_if() 385 1
C++ boost::algorithm::string::trim_right() 282 3
C++ boost::algorithm::string::trim_left() 364 1
C++ boost::algorithm::string::to_lower() 737 1
C++ boost::algorithm::string::to_upper() 298 1
C++ Program to Implement Dequeue 1327 5
C++ Program to Implement Dequeue 241 3