Biblioteca de algoritmos de string C++ Boost

La biblioteca de algoritmos Boost String proporciona una implementación genérica de algoritmos relacionados con strings que faltan en STL . Es una extensión de la biblioteca de algoritmos de STL e incluye recorte , conversión de casos , predicados y funciones de buscar/reemplazar . Todos ellos vienen en diferentes variantes, por lo que es más fácil elegir el que mejor se adapte a una necesidad particular.

La implementación no está restringida para trabajar con un contenedor en particular (como basic_string), sino que es lo más genérica posible. Esta generalización no compromete el rendimiento, ya que los algoritmos utilizan características específicas del contenedor cuando significa una mejora del rendimiento.

  • Conversión de una string a mayúsculas y minúsculas.

    STL tiene una buena manera de convertir el caso del personaje. Desafortunadamente, solo funciona para un solo carácter y queremos convertir una string,

    • to_upper() y to_lower() convierten el caso de los caracteres en una string utilizando una configuración regional específica.
    • to_upper_copy() y to_lower_copy() devuelven la copia de la string convertida.

    Ejemplos:

    #include <boost/algorithm/string.hpp>
    #include <iostream>
      
    using namespace std;
    using namespace boost::algorithm;
      
    int main()
    {
        string str("Hello");
        string upper_s;
        string lower_s;
      
        cout << "Actual string: "
             << str << endl;
      
        to_upper(str);
        cout << "Actual string converted to uppercase: "
             << str << endl;
      
        to_lower(str);
        cout << "Actual string converted to lowercase: "
             << str << endl;
      
        str = "Hello";
        upper_s = to_upper_copy(str);
        lower_s = to_lower_copy(str);
      
        cout << "Converted Uppercase string: "
             << upper_s << endl;
        cout << "Converted Lowercase string: "
             << lower_s << endl;
      
        return 0;
    }
    Producción:

    Actual string: Hello
    Actual string converted to uppercase: HELLO
    Actual string converted to lowercase: hello
    Converted Uppercase string: HELLO
    Converted Lowercase string: hello
    
  • Para eliminar caracteres de una string

    Boost.StringAlgorithms proporciona varias funciones que puede usar para eliminar caracteres individuales de una string.

    • erase_first_copy() eliminará la primera aparición en la string de origen.
    • erase_nth_copy() eliminará la enésima aparición en la string de origen.
    • erase_all_copy() eliminará todas las apariciones de un carácter en particular de una string.
    • Para acortar una string en un número específico de caracteres en cualquiera de los extremos, use las funciones erase_head_copy() y erase_tail_copy() .

    Ejemplo

    #include <boost/algorithm/string.hpp>
    #include <cstdlib>
    #include <iostream>
    #include <string>
      
    using namespace std;
    using namespace boost::algorithm;
      
    int main()
    {
      
        string s = "geeksforgeeks";
        cout << erase_first_copy(s, "g") << '\n';
        cout << erase_nth_copy(s, "g", 0) << '\n';
        cout << erase_last_copy(s, "g") << '\n';
        cout << erase_all_copy(s, "g") << '\n';
        cout << erase_head_copy(s, 5) << '\n';
        cout << erase_tail_copy(s, 1) << '\n';
        return 0;
    }
    Producción:

    eeksforgeeks
    eeksforgeeks
    geeksforeeks
    eeksforeeks
    forgeeks
    geeksforgeek
    
  • Para reemplazar caracteres de una string

    Boost.StringAlgorithms proporciona varias funciones que puede usar para reemplazar caracteres individuales de una string.

    • replace_first_copy() reemplazará la primera aparición en la string de origen.
    • replace_nth_copy() reemplazará la enésima aparición en la string de origen.
    • replace_all_copy() reemplazará todas las apariciones de un carácter particular de una string.

    Ejemplo

    #include <boost/algorithm/string.hpp>
    #include <cstdlib>
    #include <iostream>
    #include <string>
      
    using namespace std;
    using namespace boost::algorithm;
      
    int main()
    {
      
        string s = "geeks_for_geeks";
        cout
            << replace_first_copy(s, "_", "-")
            << '\n';
        cout
            << replace_last_copy(s, "_", "-")
            << '\n';
        cout
            << replace_all_copy(s, "_", "-")
            << '\n';
        return 0;
    }
    Producción:

    geeks-for_geeks
    geeks_for-geeks
    geeks-for-geeks
    

Referencia: https://www.boost.org/doc/libs/1_70_0/doc/html/string_algo/reference.html

Publicación traducida automáticamente

Artículo escrito por _udhay_ 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 *