c++ - 字符串操作——将字符串追加到自身

标签 c++ string stl

我的代码有这部分会抛出错误

for(int i=0;i<100;i++)
{
s=s+",";

cout <<"string length is now "<<s.length<<endl;
}

我只是将同一个字符串一次又一次地附加到自身 100 次。 错误是:

第 23 行:错误:获取绑定(bind)函数 std::basic_string、std::allocator>::length() const 的地址。

谁能告诉我我在这里做错了什么?

最佳答案

应该是s.length(),不是s.length:

cout <<"string length is now "<< s.length() <<endl;

请注意,std::string::length() 是一个函数,而不是一个变量。

我更喜欢 .size() 因为它与所有其他容器一致。其他容器没有.length()成员函数;只有 std::string 具有此功能,以及返回相同值的 .size()

如果 std::string.size(),那为什么要抛出异常并使用 .length()?为什么不始终如一地使用 .size()?我建议你使用 .size() 而不是 .length():

cout <<"string length is now "<< s.size() <<endl;

关于c++ - 字符串操作——将字符串追加到自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8441728/

相关文章:

c++ - 找到第n大元素

c++ - 我可以阻止复制构造函数有一些异常(exception)吗?

c++ - 如何监控放入标准输出缓冲区的内容并在特定字符串存放在管道中时中断?

c++ - 当函数执行结束时, vector 中的线程会发生什么?

java - 如何使用 Jsoup 从标签元素中检索字符串?

C++ 搜索性能

c++ - 根据传递的仿函数约束模板参数

c++ - SFML - 创建光标和打印输入?

string - 在 Go 中拆分字符串列表中的字符串

c++ - 使用 std::future 无效使用不完整类型