我在这里定义了一个函数
Request URL:http://ncrjobs.in/jobs-details.php/id/10898/job_company_name/LPIT%20Software%20Solutions%20Pvt%20Ltd%20OPC
Request Method:GET
Status Code:404 Not Found
当我想测试这个功能时,我使用
void PalindromeFinder::truncateToLargestPalindrome(string& inputString)
然后编译器给了我这个错误
cout<<truncateToLargestPalindrome("djfklsevesdfjkf")<<endl;
答案 0 :(得分:1)
如果要将函数的结果传递给<<
运算符,则函数必须实际返回一些内容。在您当前的实现中,它不返回任何内容(void
),因此您的代码显然不正确。
要使其有效,您必须:
从您的函数返回std::string
:
string PalindromeFinder::truncateToLargestPalindrome(const string& inputString)
cout << truncateToLargestPalindrome("djfklsevesdfjkf") << endl;
首先调用函数修改局部变量,然后将该变量传递给cout
:
std::string str = "djfklsevesdfjkf";
truncateToLargestPalindrome(str);
cout << str << endl;
答案 1 :(得分:1)
您不能将字符串文字传递给非常量string&
参数。编译器需要创建一个临时string
对象,但临时不能绑定到非const左值引用,只能绑定到 const lvalue reference 或者右值参考。因此编译错误。
您需要将参数更改为const
引用,以便临时string
可以绑定它。然后你可以将字符串文字传递给它。
此外,您的函数未返回任何内容,因此您无法将其传递给流式<<
运算符(或任何其他运算符)。
请改为尝试:
string PalindromeFinder::truncateToLargestPalindrome(const string& inputString)
{
string outputString = inputString;
// modify outputString as needed...
return outputString;
}
cout << truncateToLargestPalindrome("djfklsevesdfjkf") << endl;