Cómo convertir std::string a minúsculas en C++?
¡Hola a todos! Soy nuevo en C++ y estoy escribiendo un pequeño programa para procesar texto. Necesito convertir todos los caracteres de una cadena a minúsculas. Sé que en C existe la función tolower() de , pero solo funciona con caracteres individuales (int). ¿Cómo puedo aplicarla a toda una cadena std::string?
Intenté escribir un bucle como este:
```cpp
#include
#include
#include
int main() {
std::string str = "Hello World!";
for (int i = 0; i < str.size(); ++i) {
str[i] = tolower(str[i]);
}
std::cout << str << std::endl;
return 0;
}
```
El código compila, pero no estoy seguro de que sea correcto y seguro. ¿Quizás hay una forma más idiomática usando STL? He oído hablar de std::transform, pero no entiendo cómo aplicarlo junto con tolower. Además, tolower toma int, no char — ¿no habrá problemas con valores negativos de char (ya que char puede ser signed)?
Por favor, indíquenme cómo convertir correcta y eficientemente.
No answers yet.
Inicia sesión para dejar una respuesta