我目前正在学习 C++。我正在尝试编写一种方法来删除字符串中的空格并返回没有空格的字符串 这是我的代码:
string removeSpaces(string input)
{
int length = input.length();
for (int i = 0; i < length; i++) {
if(input[i] == ' ')
input.erase(i, 1);
}
return input
}
但这有一个错误,因为它不会删除两个或三个空格。 我在网上找到了这个
s.erase(remove(s.begin(),s.end(),' '),s.end());
但显然这是返回一个 iterator
(如果我理解得很好)
有什么方法可以将 iterator
转换回我的字符串 input
?
最重要的是这是正确的方法吗?
最佳答案
std::string::erase
返回一个迭代器,但您不必使用它。您的原始字符串已被修改。
string removeSpaces(string input)
{
input.erase(std::remove(input.begin(),input.end(),' '),input.end());
return input;
}
关于c++ - 从 C++ 中的字符串中删除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16329358/