12 métodos de cadenas de C ++ que debe dominar hoy
C ++ es uno de los lenguajes de programación más poderosos con la ayuda de sus métodos integrados para realizar operaciones como ordenar, buscar y revertir. Estos métodos cubren los inconvenientes de facilidad de uso que tiene C ++ en comparación con otros lenguajes de programación de alto nivel como Java y Python.
En este artículo, aprenderá 12 métodos de cadenas de C ++ que lo ayudarán a realizar operaciones en cadenas en una fracción del código que ha estado usando.
¿Qué son los métodos de cadena en C ++?
Los métodos de cadena son las funciones predefinidas almacenadas en el archivo de encabezado de cadena . Puede usarlos importando el archivo de encabezado de cadena :
#include <string>
Considere una variable de cadena de ejemplo str con el valor de "Bienvenido a MUO" para implementar estos métodos.
string str = “Welcome To MUO”;
1. comenzar ()
El método begin () en C ++ devuelve un iterador al principio de la cadena. Cree un iterador usando la palabra clave auto y almacene la referencia inicial de la variable de cadena usando str.begin (). El siguiente código muestra la implementación:
auto i = str.begin();
cout<<"The first character in the string str is: "<<*i<<endl;
Salida :
The first character in the string str is: W
2. fin ()
El método de cadena end () devuelve el iterador al final de la cadena. Este código imprime el último carácter de la variable de cadena:
auto i = s.end()-1;
cout<<"The last character in the string s is: "<<*i<<endl;
Salida :
The first character in the string s is: O
También puede recorrer la cadena e imprimir caracteres individuales usando los métodos begin () y end () . Así es cómo :
for(auto i = str.begin(); i!= str.end(); i++){
cout<<*i;
}
3. push_back ()
El método push_back () inserta un carácter al final de la cadena. Al realizar esta operación, el tamaño de la cadena aumenta en 1.
str.push_back('!');
cout<<str;
La salida del código anterior tendrá un signo de exclamación (!) Junto con la cadena original:
Welcome To MUO!
También puede agregar un conjunto de caracteres u otra cadena recorriendo y agregando carácter por carácter. Considere una variable de cadena str2 , con el valor de "Hola". Para agregar esta variable a la cadena original usando el método push_back () :
string str2 = " Hi there";
for(auto i = str2.begin(); i!=str2.end() ;i++){
str.push_back(*i);
}
cout<<str<<endl;
Salida :
Welcome To MUO! Hi there
4. pop_back ()
El método pop_back () elimina el último carácter de una cadena. Así es como puede probar este método en la cadena str :
str.pop_back();
cout<<str<<endl;
Salida :
Welcome To MU
5. tamaño ()
El método size () le ayuda a calcular la longitud de la cadena.
cout<<"The size of the string str is "<<str.size()<<endl;
6. copiar ()
El método copy () copia una cadena completa o subcadena. Acepta tres argumentos: matriz de caracteres, longitud de la subcadena y la posición desde donde la cadena debe comenzar a copiarse.
char str2[50];
str.copy(str2, 6,2);
cout<<"The value in str2: "<<str2<<endl;
Salida :
The value in str2: lcome
7. swap ()
El método swap () le ayuda a intercambiar dos cadenas entre sí. La sintaxis de este método es:
string1.swap(string2)
Este método acepta una variable de cadena como argumento. Puede ejecutar este método en la cadena que desea intercambiar e imprimir para verificar los resultados.
string str = “Welcome To MUO”;
string str2 = "Hi There";
str.swap(str2);
cout<<"String 1 str: "<<str<<endl;
cout<<"String 2 str2: "<<str2<<endl;
Salida :
String 1 str: Hi There
String 2 str2: Welcome To MUO
8. getline ()
El método getline () almacena un flujo de caracteres aceptados durante la entrada. Este método acepta dos argumentos: cin y la variable de cadena.
string s;
cout<<"Enter a string"<<endl;
getline(cin,s);
cout<<s<<endl;
Salida :
Enter a string
Welcome to MUO
9. redimensionar ()
El método resize () cambia la longitud de la cadena incrementándola o disminuyéndola dinámicamente. Acepta un argumento: la longitud a la que desea cambiar el tamaño de su cadena.
str.resize(10);
cout<<"The value of str after resizing it: "<<str<<endl;
Salida :
The value of str after resizing it: Welcome To
10. capacidad ()
El método capacity () en C ++ devuelve la capacidad asignada a la cadena. Puede ser igual a la longitud de la cuerda o mayor que ella.
cout<<"The capacity of the string is "<<str.capacity()<<endl;
11. stoi ()
El método stoi () ayuda a convertir un número en forma de cadena en su valor numérico. Acepta un parámetro: la variable de cadena. Si su variable de cadena tiene otros caracteres además de números, los filtrará. Pero para que este método funcione, los caracteres de cadena no numéricos deben seguir a los números. Si los caracteres aparecen antes de los números, devolverá un error.
Antes de continuar con la operación anterior, asegúrese de almacenarlo en una variable entera antes de imprimirlo. He aquí un ejemplo:
string s1 = "123";
int v1 = stoi(s1);
cout<<"Stoi() for s1: "<<v1<<endl;
string s2 = "123 pass";
int v2 = stoi(s2);
cout<<"Stoi() for s2: "<<v2;
Salida :
Stoi() for s1: 123
Stoi() for s2: 123
12. rbegin () y rend ()
El método rbegin () devuelve la referencia del iterador inverso a la cadena al final. De manera similar, el método rend () devuelve la referencia del iterador de inicio a la cadena al principio.
auto beg = str.rbegin();
auto end = str.rend()-1;
cout<<"The last character is: "<<*beg<<endl;
cout<<"The first character is: "<<*end<<endl;
También puede imprimir el reverso de la cadena utilizando los métodos rbegin () y rend () . Para hacerlo, puede recorrer la cadena e imprimirla carácter por carácter.
for(auto i=str.rbegin(); i!=str.rend(); i++){
cout<<*i;
}
Salida :
The last character is: O
The first character is: W
OUM oT emocleW
Dé un paso adelante en el aprendizaje de C ++
Ahora que ha aprendido a implementar varios métodos de cadena del encabezado de cadena , puede sentirse seguro explorando más métodos prediseñados en los archivos de encabezado de C ++. Desde sort () y reverse () hasta binary_search () , hay pocas cosas que STL de C ++ no pueda lograr en el mundo de la codificación.
Tomarse el tiempo para aprender sobre la biblioteca de plantillas estándar es una excelente inversión para los programadores de C ++ de todos los niveles. La biblioteca de plantillas estándar proporciona funciones integradas, estructuras de datos comunes y algoritmos prácticos para hacer que la programación sea fácil y eficiente.