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

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


     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 tail of the input string with a new pattern. It first identifies the tail by taking last N characters , where N is given by the user. It then proceeds to replace the last N characters with the new format string given by the user.

header file:





    input_string : an input string

N : An integer which specifies the number of characters to be considered as tail. i.e.,

format_string : the pattern that replaces the head.

(For N>=0, at most N characters are extracted. For N<0, size(Input)-|N| characters are extracted.)

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


#include<iostream> #include<boost/algorithm/string.hpp> using namespace std; using namespace boost::algorithm; int main() { string str1 = "Hello and Welcome to STL"; cout<<str1<<endl; replace_tail(str1,3,"Boost");//replacing "STL" inplace with "Boost" cout<<str1<<endl<<endl; string str2 = "Apple Banana Mango Apple Banana Apple"; cout<<str2<<endl; replace_tail(str2,12,"Orange");//replacing "Banana Apple" inplace with "Orange" cout<<str2<<endl<<endl; string str4 = "Hi Hi Hi Hi Hi Hi"; cout<<str4<<endl; string str3 = replace_tail_copy(str4,2,"Guys ");//replacing "Hi " by returning a copy cout<<str3<<endl; }



As we can observe from the output we are first performing an inplace replacement where we are replacing the last 3 characters of the input string i.e., "STL" with "Boost ". In str3, we are storing the copy of the modified string i.e., inplace replacement is not preformed.

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() 646 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() 209 0
C++ boost::algorithm::string::erase_all() 895 1
C++ boost::algorithm::replace_all() 2049 0
C++ boost::algorithm::string::erase_nth() 215 0
C++ boost::algorithm::string::replace_nth() 221 0
C++ boost::algorithm::string::replace_last() 246 0
C++ boost::algorithm::string::erase_last() 243 0
C++ boost::algorithm::string::erase_first() 215 1
C++ boost::algorithm::string::replace_first() 432 0
C++ boost::algorithm::string::find_token() 351 0
C++ boost::algorithm::string::find_tail() 200 1
C++ boost::algorithm::string::find_head() 212 0
C++ boost::algorithm::string::find_last() 300 1
C++ boost::algorithm::string::find_first() 749 1
C++ boost::algorithm::string::all() 224 1
C++ boost::algorithm::string::lexicographical_compare() 214 0
C++ boost::algorithm::string::equals() 378 0
C++ boost::algorithm::string::contains() 1824 0
C++ boost::algorithm::string::ends_with() 1283 0
C++ boost::algorithm::string::starts_with() 2058 0
C++ boost::algorithm::string::trim_if() 712 1
C++ boost::algorithm::string::trim() 3796 0
C++ boost::algorithm::string::trim_right_if() 522 1
C++ boost::algorithm::string::trim_left_if() 384 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() 296 1
C++ Program to Implement Dequeue 1327 5
C++ Program to Implement Dequeue 241 3