5-29 删除字符串中的子串 (20分)

来源:互联网 发布:淘宝vr眼镜 编辑:程序博客网 时间:2024/06/06 17:18
5-29 删除字符串中的子串   (20分)

输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。

输入格式:

输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。

输出格式:

在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。

输入样例:

Tomcat is a male ccatatcat

输出样例:

Tom is a male
#include<stdio.h>#include<string.h>int main(){char s1[80],s2[80];int i,l1=0,l2=0;for(i=0;;i++){    scanf("%c",&s1[i]);    if(s1[i]=='\n')break;l1++;}for(i=0;;i++){    scanf("%c",&s2[i]);        if(s2[i]=='\n')break;        l2++;}int cnt=0,j;for(i=0;i<l1;i++){if(s1[i]==s2[0]){cnt=1;//标志 for(j=0;j<l2;j++){if(s1[i+j]!=s2[j])cnt=0;}if(cnt==1){l1=l1-l2;for(int k=i;k<l1;k++){s1[k]=s1[k+l2];}//ifi=-1;s1[l1]='\0';//重置数组 }}}for(i=0;i<l1;i++)printf("%c",s1[i]);}