Vimos que la clase string en C++ nos facilita trabajar con cadenas de caracteres en nuestros algorítmos.
Como se trata de una clase dispone de un conjunto de métodos que permite acceder a su contenido para manipularla.
Estos métodos retornan la cantidad de caracteres que contiene el string. Podemos utilizar indistintamente uno u otro (similar a la función strlen con vectores de caracteres)
Mostrar la cantidad de caracteres de tiene un string empleando estos dos métodos:
#include<string>
#include<iostream>
using namespace std;
int main()
{
string cadena1 = "Hola";
cout << "cadena:" << cadena1;
cout << "\n";
cout << cadena1.size();
cout << "\n";
cout << cadena1.length();
return 0;
}
Este proyecto lo puede descargar en un zip desde este enlace : Clasestring6.zip
El método empty retorna true si el string tiene una cadena vacía. Por ejemplo un string vacío se inicia con:
string cad="";
Pero también podemos hacerlo sin asignar un valor (la forma anterior es solo para dejarlo más legible):
string cad;
Cargar un string por teclado y luego mostrar un mensaje que no se ingresó caracteres por teclado o la cantidad de caracteres que se ingresaron. Emplear el método empty:
#include<string>
#include<iostream>
using namespace std;
int main()
{
string cadena;
cout << "Ingrese una cadena:";
getline(cin, cadena);
if (cadena.empty())
{
cout << "No se ingresaron caracteres por teclado.";
}
else
{
cout << "La cadena tiene una longitud de:" << cadena.length();
}
return 0;
}
Este proyecto lo puede descargar en un zip desde este enlace : Clasestring7.zip
Como el método empty retorna true o false podemos preguntar directamente por el valor devuelto sin utilizar un operador relacional ==:
if (cadena.empty())
El método at me permite recuperar un caracter de una determinada posición dentro del string, por ejemplo para recuperar el tercer caracter almacenado en el string :
char letra=str.at(2);
El resultado es idéntico a acceder por medio de subíndices:
char letra=str[2];
Cargar un string por teclado y luego mostrar cada caracter separado por un guión:
#include<string>
#include<iostream>
using namespace std;
int main()
{
string cadena;
cout << "Ingrese un palabra:";
getline(cin, cadena);
for (int f = 0; f < cadena.length(); f++)
{
cout << cadena.at(f)<<"-";
}
return 0;
}
Este proyecto lo puede descargar en un zip desde este enlace : Clasestring8.zip
Mediante un for accedemos a cada caracter del string y lo mostramos junto al caracter "-".
Tengamos en cuenta que podemos remplazar la llamada al método at por medio del acceso por subíndices:
for (int f = 0; f < cadena.length(); f++)
{
cout << cadena[f]<<"-";
}