我有一个C ++程序,其中程序的所有输入都有下划线(' _')而不是空格。我试图替换所有下划线的空格('')。我尝试使用std :: replace,但我一直在收到错误,我不确定我在哪里弄错了。
array1
$arr=array[{"zip": "560045", "count": 1}];
array2
$arr1=array[{"city": "Bangalore", "count": 1}]
array3
$arr2=array[{"acount": 3, "answer": "fgdfgd", "question": "comment-about-me-"}]
尝试编译时返回错误:
从
int main() { string j = "This_is_a_test"; j = std::replace( j.begin(), j.end(), '_', ' '); // I'm trying to get: This is a test from 'j', }
转换为std :: basic_string,std :: allocator>'请求的
答案 0 :(得分:3)
std::replace
适用于迭代器,因此它直接修改字符串,没有必要的返回值。使用
std::replace(j.begin(), j.end(), '_', ' ');
代替。
答案 1 :(得分:1)
std::replace
返回void
。
您无法将void
分配给std::string
。
答案 2 :(得分:0)
你必须使用:
std::replace( j.begin(), j.end(), '_', ' ');
cout<<j;