C++ 中的 substr C3867 错误

substr C3867 error in c++

本文关键字:错误 C3867 substr 中的 C++      更新时间:2023-10-16

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

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>::length':非标准语法;使用"&"创建指向成员 Ch2 的指针 d:\codes\ch2.cpp 48

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

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

它应该像

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

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

@cj9435042 你已经使用了"input.length",将其替换为"input.length(("。

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;