我正在尝试编写一个函数,该函数从字符串的开头和结尾删除空格,并不断地得到错误。
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;
}怎么啦?
发布于 2014-01-27 01:30:02
而不是
string trimmed = str.substr(i, (str.length-i));使用
string trimmed = str.substr(i, (str.length()-i));length()它是一个函数,而不是一个成员。这在其他语言中有不同的处理方式。
注意,size()是length()的同义词。
https://stackoverflow.com/questions/21371603
复制相似问题