c ++中的substr C3867错误

时间:2018-01-23 04:56:07

标签: c++ c++11

我正在做一个小测试,但我无法弄清楚为什么我的代码有问题:

cout << "Please input an integer >= 1000: ";
string input;
cin >> input;   
string head =input.substr(0, input.length - 3);
string tail = input.substr(1, input.length);
cout <<  head+","+tail << endl;

这部分给出错误:

  

C3867'std :: basic_string,std :: allocator&gt; :: length':非标准语法;使用'&amp;'创建指向成员Ch2的指针d:\ codes \ ch2.cpp 48

我想知道它可能是substr的参数问题,但不知道如何解决这个问题。你能帮我解决这个问题吗?谢谢!

3 个答案:

答案 0 :(得分:2)

string head =input.substr(0, input.length - 3);

应该是

string head =input.substr(0, input.length() - 3);

答案 1 :(得分:1)

使用input.length()而不是input.length

答案 2 :(得分:0)

@ cj9435042您使用了&#39; input.length&#39;用&quot; input.length()&#39;替换它。

out_stream