C++ string使用replace实现字符串替换

发布于 2020-07-02  85 次阅读


string &replace_all(string &str, const string &old_value, const string &new_value)
{
	while(true)
	{
		string::size_type pos(0);
		if((pos = str.find(old_value)) != string::npos)
			str.replace(pos,old_value.length(),new_value);
		else
			break;
	}
	return str;
}

string &replace_all_distinct(string &str, const string &old_value, const string &new_value)
{
	for(string::size_type pos(0); pos!=string::npos; pos+=new_value.length())
	{
		if((pos = str.find(old_value,pos)) != string::npos)
			str.replace(pos,old_value.length(),new_value);
		else
			break;
	}
	return str;
}