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

则从str1中删除str2子串,并输出删除子串后的str1串
2024-11-17 10:53:04
推荐回答(3个)
回答(1):

#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 <return 0;
}
代码中使用了递归运算,可以将str1中所有的str2子串全部删除,然后输出其余部分。
满意请采纳。

回答(2):

若 str1中存在str2的字符串。 删除str1后面的所有数据,还是只删除与str2相同的数据?

回答(3):

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());
}