Avatar ·

Como remover corretamente espaços no início e fim de std::string em C++?

Olá a todos! Sou um desenvolvedor C++ iniciante e me deparei com uma tarefa aparentemente simples: preciso remover espaços (e quaisquer caracteres de espaço em branco) no início e no fim de uma string. Estou trabalhando com std::string. Tentei escrever minha própria função trim usando loops e verificação de caracteres com std::isspace, mas o código ficou extenso e, na minha opinião, ineficiente. Aqui está o que consegui até agora: ```cpp #include #include #include std::string trim(std::string str) { // Remove espaços no início while (!str.empty() && std::isspace(str[0])) { str.erase(0, 1); } // Remove espaços no fim while (!str.empty() && std::isspace(str[str.length() - 1])) { str.erase(str.length() - 1, 1); } return str; } ``` Este código funciona, mas acho que chamar erase() repetidamente para remover um caractere por vez é terrivelmente lento, especialmente para strings longas. Além disso, não tenho certeza se meu código trata corretamente