[讨论]如何替换字符串?(效率)
每次给你三个字符串A,B,C,你要把A里面的B全部用C替换.(B在A里面出现的顺序替换)
每三行分别输入A,B,C.(A,B,C的长度都小于256)
输出替换后的字符串.如:
AaaaaDFaA
a
U
输出:
AUUUUDFUA
我是这么做的:
#include<stdio.h>
#include<string.h>
main()
{
int i,j,k,n,m,q,p,f;
char a[257],b[257],c[257];
while(gets(a))
{
gets(b);
gets(c);
m=strlen(b);/*算出长度*/
for(i=0;a[i]!='\0';i++)
{ q=i;
for(j=i,p=0;p<m;p++)
{ if(a[j]==b[p])
{ n=1;
j++;
}
else
{for(f=q;f<=j;f++)
printf("%c",a[f]);
n=0;
break;
}
}
if(n==1)
{ for(k=0;c[k]!='\0';k++)
printf("%c",c[k]);
i=j-1;
}
}
printf("\n");
}
return 0;
}
能帮我改进一下效率吗?或把你的程序让我看一下?谢!