编写程序:将字符串s1中所有出现字符串s2中的字符删去。

这是一段错误程序,请帮忙改一下,谢谢
#include<iostream>
using namespace std;
char in(char,char);
void del(char,int);
void sdel(char,char);
int main(){
char s1[],s2[];
cout<<"请输入字符串s1:"<<endl;
cin>>s1;
cout<<"请输入字符串s2:"<<endl;
cin>>s2;
sdel(s1,s2);
cout<<s1;
return 0;
}
char in(char ch,char str[]){
int i=0;
while(str[i]!='\0'){
if(str[i++]==ch) return 1;
else return 0;
}
void del(char str[],int k){
while(str[k]!=0);
str[k]=str[k+1];
}
void sdel(char s1[],char s2[]){
int i=0,k=0;
while(s1[i]!='\0'){
if(in(s1[i],s2[])==1)
del(s1[],i);
i++;};
}

#include<iostream>
using namespace std;
void del(char a[],char b[]){
int i=0,j=0,k,l=29;
while(a[i]!=0){
while(b[j]!=0){
if(a[i]==b[j]){
for(k=i;k<l;k++)
a[k]=a[k+1];
l--;
i--;}
else j++;}
j=0;
i++;}
}
int main(){
char s1[50],s2[30];
cout<<"请输入一组字符串:"<<endl;
cin.getline(s1,49);
cout<<"请输入想要删除的字符串:"<<endl;
cin.getline(s2,29);
cout<<"删除后的字符串为:"<<endl;
del(s1,s2);
cout<<s1<<endl;
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答