Avatar ·

Comment convertir une chaîne std::string en minuscules en C++ ?

Bonjour, collègues ! Je suis nouveau en C++ (avant j'écrivais en Python) et j'ai rencontré une tâche apparemment simple : je dois convertir tous les caractères d'un objet std::string en minuscules. En Python, j'écris simplement "HELLO".lower() et c'est fait. Mais en C++, je suis perplexe. Voici mon code qui ne fonctionne pas : ```cpp #include #include int main() { std::string text = "HELLO WORLD!"; std::string lower_text = std::tolower(text); // Erreur ! std::cout << lower_text << std::endl; return 0; } ``` Le compilateur donne une erreur : `cannot convert 'std::string' to 'int' for argument '1' to 'int tolower(int)'`. J'ai compris que `std::tolower` ne fonctionne qu'avec des caractères individuels (type `int`), pas avec une chaîne entière. J'ai essayé d'écrire une boucle manuellement : ```cpp for (size_t i = 0; i < text.length(); ++i) { text[i] = std::tolower(text[i]); } ``` Cela fonctionne, mais cela me semble trop lourd et pas élégant. Existe-t-il en C++ un moyen standard de faire cela en une seule fois ?