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]<<"-"; }