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