Avatar ·

Cómo eliminar correctamente los espacios al inicio y final de std::string en C++?

¡Hola a todos! Soy un desarrollador principiante de C++ y tengo una tarea que parece simple: necesito recortar los espacios (y cualquier carácter whitespace) al inicio y final de una string. Estoy trabajando con std::string. Intenté escribir mi propia función trim usando bucles y verificando caracteres con std::isspace, pero el código resultó voluminoso y, creo, ineficiente. Esto es lo que tengo hasta ahora: ```cpp #include #include #include std::string trim(std::string str) { // Eliminar espacios al inicio while (!str.empty() && std::isspace(str[0])) { str.erase(0, 1); } // Eliminar espacios al final while (!str.empty() && std::isspace(str[str.length() - 1])) { str.erase(str.length() - 1, 1); } return str; } ``` Este código funciona, pero me parece que llamar constantemente a erase() para eliminar un carácter a la vez es terriblemente lento, especialmente para strings largas. Además, no estoy seguro de que mi código maneje correctamente