C ++替换字符串中所有出现的字符

时间:2015-10-20 11:39:52

标签: c++

我有一个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>'请求的

3 个答案:

答案 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;