std::string::replace , std::string::replace_if en C++

reemplazar()

Reemplaza cada elemento en el rango [primero, último] que es igual a oldValue con newValue. La función usa el operador == para comparar los elementos individuales con old_value.

template <class ForwardIterator, class T>
  void replace (ForwardIterator first, ForwardIterator last,
                const T& old_value, const T& new_value);
first, last : the range of elements to process
old_value : the value of elements to replace
new_value : the value to use as replacement

C++

// CPP code to demonstrate replace()
 
#include <iostream>
using namespace std;
 
// Function for demonstration
void replaceDemo(string s1, string s2, string s3, string s4)
{
    // Replaces 7 characters from 0th index by s2
    s1.replace(0, 7, s2);
    cout << s1 << endl;
 
    // Replaces 3 characters from 0th index with "Hello"
    s4.replace(0, 3, "Hello ");
    cout << s4 << endl;
 
    // Replaces 5 characters from 6th index of s4 with
    // 5 characters from 0th of s3
    s4.replace(6, 5, s3, 0, 5);
    cout << s4 << endl;
 
    // Replaces 5 characters from 6th index of s4 with
    // 6 characters from string "to all"
    s4.replace(6, 5, "to all", 6);
    cout << s4 << endl;
 
    // Replaces 1 character from 12th  index of s4 with
    // 3 copies of '!'
    s4.replace(12, 1, 3, '!');
    cout << s4 << endl;
}
 
// Driver code
int main()
{
    string s1 = "Example of replace";
    string s2 = "Demonstration";
    string s3 = "GeeksforGeeks";
    string s4 = "HeyWorld !";
 
    replaceDemo(s1, s2, s3, s4);
    return 0;
}

Producción: 

Demonstration of replace
Hello World !
Hello Geeks !
Hello to all !
Hello to all!!!!

reemplazar_si

replace_if() reemplaza cada elemento en el rango [primero, último] para el cual el predicado unario, es decir, op(elem) da como resultado verdadero con newValue. 

template <class ForwardIterator, class UnaryPredicate, class T>
  void replace_if (ForwardIterator first, ForwardIterator last,
                   UnaryPredicate pred, const T& new_value );
Unary predicate are just functions that take a single parameter 
and return a Boolean value. It is used to check whether an 
element fits the criterion

C++

// CPP code to demonstrate replace_if()
 
#include <iostream>
#include <vector>
#include <algorithm> // Header file for replace_if
using namespace std;
 
// Function to check if character is vowel or not
bool IsVowel(char ch)
{
    return (ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U');
}
 
// Function to replace all vowels with 'V'
void replace_ifDemo(vector<char>&v)
{
    replace_if(v.begin(), v.end(), IsVowel, 'V');
}
 
// Function to print content of vector
void print(vector<char>&v)
{
    int len = v.size();
    for (int i = 0; i < len; i++)
        cout << v[i] << " ";
    cout << endl;
}
 
// Driver code
int main()
{
    vector<char> v;
 
    for (int i = 0; i <= 6; i++)
        v.push_back('A' + i);
    cout << "Before replace_if " <<": ";
    print(v);
    replace_ifDemo(v);
     
    cout << "After replace_if " << ": ";
    print(v);
     
    return 0;
}

Producción: 

Before replace_if : A B C D E F G 
After replace_if : V B C D V F G 

Artículo relacionado: std::string::replace_copy(), std::string::replace_copy_if
Este artículo es una contribución de Sakshi Tiwari . Si te gusta GeeksforGeeks (¡sabemos que te gusta!) y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a contribuido@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *