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