实现字符串中子字符串的替换,看了几个用C实现的,都不对。其中有几种情况:1.被替换的字符串比替换字符串长。2.替换的字符串比被替换的字符串长。好像指针都没有搞好,比较难实现。下面是用C++实现的。主要是两个函数,一个是find,还有一个是replace。
#include <string>
#include <iostream>
using namespace std;
int main()
{
string str( "abc" );
string searchString( "abc" );
string replaceString( "cd" );
//assert( searchString != replaceString );
string::size_type pos = 0;
while ( (pos = str.find(searchString, pos)) != string::npos ) {
str.replace( pos, searchString.size(), replaceString );
pos++;
}
cout << str << endl;
return 0;
}