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
No answers yet.
Faça login para deixar uma resposta