Avatar ·

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.