c语言字符串替换,该如何解决

c语言字符串替换
字符串替换,希望大家给我指导下。 大家帮我修改下这程序, 我需要输入一段源字符串, 然后输入需要替换的字符串,再输入替换成的字符串。  
  [color=#FF0000][/color]主要是main函数中有点问题,无法解决,希望大家帮帮忙!  
#include<stdio.h>
#include<string.h>

void replstr(char *a,char *b,char *c, char *aNew);

int main()
{
char msg[512];
char msgbak[512];
char newstr[64];
char oldstr[64];

printf("please input source string\n");
scanf("%s",msg);
printf("please input want to replace string\n");
scanf("%s",oldstr);
printf("please input should replaced string\n");
scanf("%s",newstr);

replstr(msg, oldstr, newstr, msgbak);
printf(msgbak);

return 0;
}

void replstr(char *a,char *b,char *c, char *aNew)
{
char strtemp[512] = {0};
char *p ;
p = strstr(a, b);
while (p != NULL)
{
memset(strtemp, 0, sizeof(strtemp));
memcpy(strtemp, a, (p - a));
strcat(aNew, strtemp);
strcat(aNew, c);

a = p + strlen(b);
p = strstr(a, b);
}
strcat(aNew, a);
}

------解决方案--------------------
char msgbak[512];没初始话。
改为
char msgbak[512]={0};
------解决方案--------------------
void replstr(char *a,char *b,char *c, char *aNew)
或者在这个函数的开头加上
aNew[0]='\0';

------解决方案--------------------
探讨
引用:
不是这个问题,它这函数处理出错了。。

除了那个问题,我看不出来其它问题了。。