#include
#include
main()
{ int i,j,n,k,m=0,t=0,s,lon=0;
char a[100],b[100],c[100];
gets(a);
gets(b);
k=strlen(b);
i=0;
j=0;
while(a[i]!=0)
{
if(a[i]==b[j])
{ i++;
j++;
}
else
{ i=i-j+1;
j=0;
};
if(b[j]=='\0')
{ s=j;
j=0;
for(m=0;a[m]!=0;m++)
{ t=m;
for( ; ti && a[t]!=0 ;t++)
c[t]=a[t];
}
}
}
c[t]='\0';
puts(c);
}
for( ; ti && a[t]!=0 ;t++) 这行的 ti 是啥?
最后找到匹配字符串后删除过程太奇怪,双循环完全没必要。而且不需要加c数组就可以,更简单
#include <stdio.h>
int main(void)
{
int i,j,n,k,m=0,t=0,s,lon=0;
char a[501],b[501];
gets(a);
gets(b);
i=0;
j=0;
k=0;
do
{
k=0;
i=0;
j=0;
while(a[i]!=0)
{
if(a[i]==b[j])
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
if(b[j]=='\0')
{
k++;
m=i;
do
{
a[m-j] = a[m];
}while(a[m++] != 0);
i=i-j;
j=0;
}
}
}while(k!=0);
puts(a);
return 0;
}