字符串大小功能不起作用

时间:2011-11-04 04:38:06

标签: c++ string function size

我的编译器抱怨处理str.size函数的代码行“Expression is not assignable”。我不知道我错了什么。有人可以帮忙吗?我将一个字符串传递给一个函数并尝试获取它的长度。

   int ValueString::value(string str)const
   {
        int length;
        str.size() = length;
        return length;

    }

2 个答案:

答案 0 :(得分:4)

str.size()返回一个无法分配给的R值。

length是L值,可以分配给。

你的意思是:

int ValueString::value(const string& str)const
{
    int length;
    length = str.size();
    return length;
}

当然,这可以简化为:

int ValueString::value(const string& str) const
{
    return str.size();
}

它可能比这更简化,也许......

答案 1 :(得分:3)

编译器消息说明了一切。您无法分配函数调用size()的结果。我想你可能意味着int length = str.size()