首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用substr错误

使用substr错误
EN

Stack Overflow用户
提问于 2014-01-27 01:28:35
回答 1查看 383关注 0票数 2

我正在尝试编写一个函数,该函数从字符串的开头和结尾删除空格,并不断地得到错误。

代码语言:javascript
复制
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"

这是我的源代码

代码语言:javascript
复制
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;
}

怎么啦?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-27 01:30:02

而不是

代码语言:javascript
复制
string trimmed = str.substr(i, (str.length-i));

使用

代码语言:javascript
复制
string trimmed = str.substr(i, (str.length()-i));

length()它是一个函数,而不是一个成员。这在其他语言中有不同的处理方式。

注意,size()length()的同义词。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21371603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档