Avatar ·

Comment supprimer correctement les espaces au début et à la fin d'un std::string en C++ ?

Bonjour à tous ! Je suis un développeur C++ débutant, et j'ai rencontré une tâche apparemment simple : je dois supprimer les espaces (et tous les caractères blancs en général) au début et à la fin d'une chaîne. Je travaille avec std::string. J'ai essayé d'écrire ma propre fonction trim en utilisant des boucles et la vérification des caractères avec std::isspace, mais le code est devenu volumineux et, me semble-t-il, inefficace. Voici ce que j'ai obtenu pour l'instant : ```cpp #include #include #include std::string trim(std::string str) { // Supprimer les espaces au début while (!str.empty() && std::isspace(str[0])) { str.erase(0, 1); } // Supprimer les espaces à la fin while (!str.empty() && std::isspace(str[str.length() - 1])) { str.erase(str.length() - 1, 1); } return str; } ``` Ce code fonctionne, mais il me semble que l'appel constant à erase() pour supprimer un seul caractère est terriblement lent, surtout pour les longues chaînes. De plus, je ne suis pas sûr que mon code traite correctement