
先构造一个子串的删除函数(一次只删除一个):
#include<iostream>
#include<cstring>
using namespace std;
void del(char s[],char m[]){
int we=strlen(m)+1;
for(int i=0;i<strlen(m)-strlen(s);i++){
if(m[i]==s[0]){
bool flag=true;
int e=i+1;
for(int j=1;j<strlen(s);j++){
if(m[e++]!=s[j]){flag=false;break;
}
}
if(flag){
we=i;break;
}
}
}
for(int i=0;i+strlen(s)<strlen(m);i++){
if(i>=we) m[i]=m[i+strlen(s)];
}
m[strlen(m)-strlen(s)]='\0';
}
int main(){
char a[90],b[90];
cin.getline(a,90);
cin.getline(b,90);
while(strstr(a,b)) del(b,a);
cout<<a<<endl;
return 0;
}
强调一下 cstring 头文件中的 strstr 函数,注意第一个参数是母串,第二个是子串,我一开始就用反了~
本文介绍了一个C++函数,用于从字符串中删除指定子串,利用strstr函数进行匹配,并通过循环实现删除操作。示例代码详细展示了如何实现这一功能,并在main函数中进行了测试,演示了如何多次删除直到子串不存在。
3万+

被折叠的 条评论
为什么被折叠?



