12. C++: Cadenas
Funciones para trabajar con cadenas:
Conversión de cadena a número (
std::stoi
,std::stol
,std::stod
): Convierte una cadena en un número entero o de punto flotante.Ejemplo: Convierte la cadena
"1234"
en un número entero y lo almacena en la variablenumber
.#include <iostream> #include <string> int main() { // Ejemplo 1: Convertir una cadena en un número entero std::string str_number = "1234"; int number = std::stoi(str_number); std::cout << "Cadena convertida en número: " << number << std::endl; return 0; }
Conversión de número a cadena (
std::to_string
): Convierte un número en una cadena.Ejemplo: Convierte el número
5678
en una cadena y lo almacena en la variablestr_another_number
.#include <iostream> #include <string> int main() { // Ejemplo 2: Convertir un número en una cadena int another_number = 5678; std::string str_another_number = std::to_string(another_number); std::cout << "Número convertido en cadena: " << str_another_number << std::endl; return 0; }
Búsqueda de una subcadena (
std::string::find
): Busca una subcadena en una cadena.Ejemplo: Busca la subcadena
"mundo"
en la cadenatext
. Si se encuentra, devuelve la posición donde comienza.#include <iostream> #include <string> int main() { // Ejemplo 3: Buscar una subcadena std::string text = "Hola, bienvenido al mundo de C++!"; std::string subcadena = "mundo"; size_t found = text.find(subcadena); if (found != std::string::npos) { std::cout << "La subcadena '" << subcadena << "' fue encontrada en la posición: " << found << std::endl; } else { std::cout << "La subcadena '" << subcadena << "' no fue encontrada." << std::endl; } return 0; }
Extracción de una subcadena (
std::string::substr
): Extrae una subcadena de una cadena.Ejemplo: Extrae la subcadena
"mundo"
de la cadena original, utilizando la posición y la longitud encontradas.#include <iostream> #include <string> int main() { // Ejemplo 4: Extraer una subcadena std::string extracted = text.substr(found, subcadena.length()); std::cout << "Subcadena extraída: " << extracted << std::endl; return 0; }