gpt4 book ai didi

c++ - 使用 substr 时出错

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:24:30 25 4
gpt4 key购买 nike

我正在尝试编写一个函数来删除字符串开头和结尾的空格,但我一直收到错误

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com