Avatar ·

Como converter std::string para minúsculas em C++?

Olá a todos! Sou novo em C++ e estou escrevendo um pequeno programa para processamento de texto. Preciso converter todos os caracteres de uma string para minúsculas. Eu sei que em C existe a função tolower() de , mas ela funciona apenas com caracteres individuais (int). Como posso aplicá-la a toda a string std::string? Tentei escrever um loop assim: ```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; } ``` O código compila, mas não tenho certeza se está correto e seguro. Talvez haja uma maneira mais idiomática usando STL? Ouvi falar sobre std::transform, mas não entendo como aplicá-lo junto com tolower. Além disso, tolower recebe int, não char — não haveria problemas com valores negativos de char (já que char pode ser signed)? Por favor, me digam como converter de forma correta e eficiente.