这是个字符串替换程序,谁帮我翻译翻译

#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;}