4.2 Operaciones con strings

Para realizar diferentes operaciones con los datos de tipo string, hay varias funciones que podemos utilizar.
  (Como mencionamos anteriormente, los string en realidad no son variables, sino que son objetos, por lo que técnicamente no poseen funciones sino métodos. Los métodos de un objeto actúan de forma análoga a las funciones y, dentro del alcance de este curso, podemos llamarlos con el mismo nombre.)

La primera de ellas es la función length(), que devuelve un entero indicando la cantidad de caracteres que posee el string analizado.

#include <iostream>
using namespace std;
int main()
{
    string nombre;
    int longitud;
    cout << "Ingrese su nombre:"<< endl;
    getline (cin, nombre);
    cout << "¡Hola "<< nombre <<"!" << endl;
    longitud = nombre.length();
    cout << "Tu nombre tiene "<< longitud <<" caracteres."<<endl<<endl;
}

El programa anterior pide al usuario que ingrese un nombre que se guarda en un string. En la línea resaltada en amarillo se llama al método length(). La forma de invocar a un método es algo distinta a la forma en que llamábamos a las funciones hasta ahora. Se coloca el nombre del string, un punto y el nombre del método (en este caso, length). Como el método pertenece al string nombre, no es necesario pasárselo como parámetro: el método ya sabe que se aplica a nombre. Length devuelve un entero indicando la cantidad de caracteres del nombre, que se guarda en la variable int longitud.

Subcadenas

La función substr() permite cortar una parte (subcadena) del string. Veremos su uso en el siguiente ejemplo:

#include <iostream>
using namespace std;

int main()
{
    string nombre;
    string apodo;
    cout << "Ingrese su nombre:"<< endl;
    getline (cin, nombre);
    cout << "¡Hola "<< nombre <<"!" << endl;

    cout <<" Vamos a buscarte un apodo"<<endl;
    for (int i = 0;i<=nombre.length()-3;i++)
    {
    apodo = nombre.substr(i,3);
    cout << "¡Hola "<< apodo <<"..." << endl;
    }
    cout<< "¿Cual te gusta mas?"<<endl;

}

La función substr() recibe dos parámetros de tipo int. El primero indica a partir de qué posición del string se quiere generar la subcadena, y el segundo indica la longitud de dicha subcadena (la cantidad de caracteres que se van a copiar). La función devuelve otro string en donde se guarda la subcadena generada. 

Concatenación

Para concatenar (unir) dos strings, se pueden usar los operadores "+" ó "+=", como se puede ver en el siguiente ejemplo:

#include <iostream>
using namespace std;
int main()
{
string s1,s2,s3;
s1 = "Hola";
s2 = "gato";
s3 = s1 + " " + s2;
cout<<s3<<endl;
s3 += "rade";
cout<<s3<<endl;
return 0;
}


Otras operaciones

Hay muchas otras operaciones que se pueden hacer con strings. Algunos de los métodos que permiten hacerlo son:

find: encontrar un caracter  o un conjunto de caracteres dentro de un string.
swap: intercambiar el contenido de dos strings.
erase: borrar el contenido de un string.
replace: reemplazar partes de un string.
insert: insertar un texto en el medio de un string

No hay comentarios:

Publicar un comentario