//将iamhappy中的a全部换成b #include "stdafx.h" #include <iostream> #include <fstream> #include <string> #include <algorithm> using namespace std; string string_replace(string resource,string re_str,string dis_str) { string abc=resource; abc.replace(&abc[abc.find(re_str)], &abc[abc.find(re_str)]+re_str.size(),dis_str); return abc; } int main(int argc, char* argv[]) { string str("iamhappy"); // str.replace(str.begin(),str.end(),'a','b'); str.replace(&str[str.find("a")],&str[str.find("a")]+1,"b"); cout<<str.c_str(); return 0; } 输出字符串时我们要先获得str的临时地址。若使用cout<<str则会造成内存崩溃!