char* function_replace(const char* src,const char* search,const char* replace)
{
size_t size = strlen(src) + 1;
size_t searchlen = strlen(search);
size_t replacelen = strlen(replace);
char* value = (char*)malloc(size);
char* ret = value;
ret = value;
if (value != NULL)
{
for(;;)
{
const char* match = (char*)strstr(src,search);
if(match != NULL)
{
size_t count = match - src;
char* temp;
size += replacelen - searchlen;
temp = (char*)realloc(value,size);
if(temp == NULL)
{
free(value);
return NULL;
}
ret = temp + (ret - value);
value = temp;
memmove(ret,src,count);
src += count;
ret += count;
memmove(ret,replace,replacelen);
src += searchlen;
ret += replacelen;
}
else /* No Match found */
{
strcpy(ret,src);
break;
}
}
}
return value;
}
const char* function_find_replace(const char* source,const char* str,const char* repl)
{
const char* after;
after = function_replace(source,str,repl);
lr_output_message("The find string is: '%s' and replace string is '%s'",str,repl);
if(after != NULL)
{
lr_output_message("The string after replacement::> %s",after);
strcpy(source,after);
}
else
{
lr_output_message("ERROR: String replace problem");
}
strcpy(source,after);
lr_save_string(after,"afterreplace");
return after;
}
No comments:
Post a Comment