我目前在我的程序中使用以下代码来去除所有的std::string的右空格:
它运行良好,但我想知道是否存在一些极端情况会导致它失败?
当然,欢迎提供优雅的替代方案和左修剪解决方案。
std::string s;
s.erase(s.find_last_not_of(" \n\r\t")+1);
它运行良好,但我想知道是否存在一些极端情况会导致它失败?
当然,欢迎提供优雅的替代方案和左修剪解决方案。
while (isspace(str[i++]));
以获得清晰度。最大的动机因素实际上是我不得不阅读一些文档才能理解代码,因为我最初认为这个代码的复杂度是O(n^2)(正如你所知道的那样,它并不是)。然后可以将代码简化为string trimBegin(string str) { size_t i = 0; while(isspace(str[i++]); return str.erase(0, i); }
。 - vmrob