昔作ったやつ。多分処理は752とおなじだと思う。
malloc使うかバッファを関数使用者に用意させればもっと軽くなるんだけど・・・

char *strreplace(char *str,const char *seeks,const char *reps)
{
size_t seekslen,repslen;
char *p=str;

if(*seeks=='\0')
return str;

seekslen=strlen(seeks);
repslen=strlen(reps);

while(p=strstr(p,seeks)){
memmove(p+repslen,p+seekslen,strlen(p+seekslen)+1);
memcpy(p,reps,repslen);
}

return str;
}