|
3#
楼主 |
发表于 2013-8-20 17:28:31
|
只看该作者
本帖最后由 yulei1983 于 2013-8-20 17:31 编辑
但是return -1之前是调用内存不成功啊~不需要释放吧
来个详细的
replacestr(char * sSrc, char *sMatchstr, char *sReplaceStr, long int Tmpsize)
{
int stringlen;
char *NewString = NULL;
char * FindPos = NULL;
FindPos = (char *)strstr(sSrc, sMatchstr);
if ((NewString = (char *)calloc(Tmpsize, sizeof(char))) == NULL)
{
lr_error_message("Insufficient memory available");
return -1;
}
if ((!FindPos)||(!sMatchstr))
{
//lr_error_message("XML is not responsed,arose FindPos is NULL");
free(NewString);
free(FindPos);
return -1;
}
else
{
while (FindPos != NULL)
{
memset(NewString, 0, Tmpsize);
stringlen = FindPos - sSrc;
strncpy(NewString, sSrc, stringlen);
strcat(NewString, sReplaceStr);
strcat(NewString, FindPos + strlen(sMatchstr));
strcpy(sSrc, NewString);
FindPos = (char *)strstr(sSrc, sMatchstr);
}
}
free(NewString);
//free(FindPos);
return 0;
} |
|