本文主要是介绍编写一个函数,接受三个string参数是s、oldVal 和newVal。使用insert和erase函数将s中所有oldVal替换为newVal。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
void fun(string &s, string oldVal, string newVal)
{string::size_type pos = 0;//int pos = 0; //避免使用int等带符号类型来储存size_typewhile (pos<s.length()){pos = s.find(oldVal, pos);//从零号位置开始查找//if (pos >= s.length()) //break;//如果没有找到退出循环if (pos == string::npos) //没找到则将pos置为string::nposbreak;s.erase(pos, oldVal.length());//如果找到,先删除原来的字符s.insert(pos, newVal);//添加新的字符//s.replace(pos,oldVal.length(),newVal);//和上面两句是等价pos = pos + newVal.length();//移动pos位置}
}int main(int argc,char *argv[])
{string s = "a tho tho thru";fun(s, "tho", "ooo");fun(s, "thru", "xxx");cout << s << endl;return 0;
}
这篇关于编写一个函数,接受三个string参数是s、oldVal 和newVal。使用insert和erase函数将s中所有oldVal替换为newVal。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!