这是个字符串替换程序,谁帮我翻译翻译
#include<stdio.h>
#include<stdlib.h>
int slen(const char *p);
char* tihuan(const char* a, const char* b, const char* c, char* d);
int chang(const char *p)
{ const char *q;
q=p;
while(*p!=0)
p++;
return (p-q);}
char*tihuan(const char* a, const char* b, const char* c, char* d)
{ char *d_temp = d;
int b_chang = chang(b);
int c_chang = chang(c);
while (*a!='\0')
{
if (*a == *b)
{const char *a_temp = a;
int flag = 0;
for (int i = 0; i < b_chang; i++)
{
if (a_temp[i]!=b[i])
{ flag = 1;
break; }
}
if (flag)
{
*d_temp = *a;
}
else
{ for (int i = 0; i < c_chang; i++)
{
*d_temp++ = c[i];
}
a = a + b_chang;
} }
else
{
*d_temp++ = *a++;
} }
*d_temp = 0;
return d;}