Como converter uma string std::string para minúsculas em C++?
Olá, colegas!
Sou novo em C++ (antes programava em Python) e me deparei com uma tarefa aparentemente simples: preciso converter todos os caracteres de um objeto std::string para minúsculas. Em Python, eu simplesmente escrevo "HELLO".lower() e está pronto. Mas em C++ estou perdido.
Aqui está meu código que não funciona:
```cpp
#include
#include
int main() {
std::string text = "HELLO WORLD!";
std::string lower_text = std::tolower(text); // Erro!
std::cout << lower_text << std::endl;
return 0;
}
```
O compilador dá erro: `cannot convert 'std::string' to 'int' for argument '1' to 'int tolower(int)'`. Entendi que `std::tolower` funciona apenas com caracteres individuais (tipo `int`), e não com a string inteira.
Tentei escrever um loop manualmente:
```cpp
for (size_t i = 0; i < text.length(); ++i) {
text[i] = std::tolower(text[i]);
}
```
Isso funciona, mas parece muito verboso e deselegante. Existe em C++ uma maneira padrão de fazer isso de uma