我正在尝试编写一个函数来删除字符串开头和结尾的空格,但我一直收到错误
error C3867: 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>::length': function call missing argument list;
use '&std::basic_string<char,std::char_traits<char>,std::allocator<char>>::length' to create a pointer to member"
这是我的源代码
string trim(string str)
{
int i = 0;
for (char c : str)
{
if (!isspace(c))
break;
i++;
}
string trimmed = str.substr(i, (str.length-i));
i = 0;
for (char c : str)
{
if (isspace(c))
break;
i++;
}
trimmed = trimmed.substr(0, i);
return trimmed;
}
怎么了?
最佳答案
代替
string trimmed = str.substr(i, (str.length-i));
使用
string trimmed = str.substr(i, (str.length()-i));
length()
它是一个函数,而不是一个成员。这在其他语言中的处理方式不同。
请注意 size()
是 length()
的同义词。
关于c++ - 使用 substr 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21371603/