#include
#include
#include
using namespace std;
string Func(string str1, string str2)
{
string res;
string tmp1,tmp2;
int nPos = str1.find(str2);
if(nPos != -1)
{
tmp1 = str1.substr(0,nPos);
res += Func(tmp1,str2);
tmp2 = str1.substr(nPos+str2.length());
res += Func(tmp2,str2);
}
else
{
res = str1;
}
return res;
}
int main()
{
string str1, str2;
cin >> str1 >> str2;
string res = Func(str1,str2);
cout <
}
代码中使用了递归运算,可以将str1中所有的str2子串全部删除,然后输出其余部分。
满意请采纳。
若 str1中存在str2的字符串。 删除str1后面的所有数据,还是只删除与str2相同的数据?
int main()
{
char buf[256],buf1[256];
scanf("%s", buf);
scanf("%s", buf1);
std::string str1(buf),str2(buf1);
int pos = str1.find(str2);
if(pos !=-1)
{
str1.replace(pos, str2.length(),"");
}
printf("%s", str1.c_str());
}