C++:
Conversión de una cadena de texto a minúsculas
Cómo hacerlo:
#include <iostream>
#include <string>
#include <algorithm>
int main() {
std::string texto = "¡Hola Mundo!";
std::transform(texto.begin(), texto.end(), texto.begin(), ::tolower);
std::cout << texto << std::endl; // Imprime: "¡hola mundo!"
return 0;
}
Inmersión Profunda
Históricamente, convertir cadenas de texto a minúsculas ha sido fundamental en la normalización de datos y búsquedas insensibles a mayúsculas/minúsculas. En C++, antes de C++11, se podía usar std::transform
con ::tolower
de <cctype>
, pero cuidado con los locales! Hoy, <algorithm>
y lambdas son opciones más seguras.
Alternativas incluyen usar for
y manipular los caracteres directamente. Existen también otras bibliotecas como Boost que ofrecen soluciones más avanzadas.
En cuanto a implementación, std::transform
aplica la función pasada (en este caso ::tolower
) a cada elemento del rango dado. ::tolower
, parte de cctype
, convierte caracteres individuales, respetando la configuración regional (locale).
Ver También
- Documentación de
std::transform
de cppreference: https://en.cppreference.com/w/cpp/algorithm/transform - Documentación de
::tolower
de cppreference: https://en.cppreference.com/w/cpp/string/byte/tolower - Guía de Boost String Algorithms: https://www.boost.org/doc/libs/1_75_0/doc/html/string_algo.html