c++编程从键盘输入两个字符串str1和str2,然后判断str1中是否存在str2若存在,

则从str1中删除str2子串,并输出删除子串后的str1串

#include<stdio.h>

#include <string.h>
#include<iostream>
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 <<res<<endl;
return 0;
}
代码中使用了递归运算,可以将str1中所有的str2子串全部删除,然后输出其余部分。
满意请采纳。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-12
若 str1中存在str2的字符串。 删除str1后面的所有数据,还是只删除与str2相同的数据?
第2个回答  2015-12-08
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());
}本回答被网友采纳
相似回答