gpt4 book ai didi

c++ - 类型的非常量引用的无效初始化错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:15:29 27 4
gpt4 key购买 nike

下面是从字符串中查找和替换子字符串的代码。但是我无法将参数传递给该函数。

错误信息:

invalid initialization of non-const reference of type ‘std::string& {aka std::basic_string&}’ from an rvalue of type ‘const char*’

请帮忙解释一下

#include <iostream>
#include <string>
using namespace std;

void replaceAll( string &s, const string &search, const string &replace ) {
for( size_t pos = 0; ; pos += replace.length() ) {
pos = s.find( search, pos );
if( pos == string::npos ) break;
s.erase( pos, search.length() );
s.insert( pos, replace );
}
}
int main() {

replaceAll("hellounny","n","k");
return 0;
}

最佳答案

一个简单的解释是,由于您的 replaceAll 函数正在更改一个字符串,您必须给它一个要更改的实际字符串。

int main() {
string str = "hellounny";
replaceAll(str,"n","k");
return 0;
}

关于c++ - 类型的非常量引用的无效初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19173670/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com