Skip to content

Instantly share code, notes, and snippets.

@silv3rm00n
Created December 22, 2011 15:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save silv3rm00n/1510611 to your computer and use it in GitHub Desktop.
Save silv3rm00n/1510611 to your computer and use it in GitHub Desktop.
char *str_replace(char *search , char *replace , char *subject)
{
char *new_subject = NULL , *p = NULL , *old , *temp;
int c = 0, final_size;
new_subject = subject;
//Get new size of string
//for(p = strstr(subject , search) ; p != NULL ; p = strstr(p+strlen(search) , search))
while((p = strstr(new_subject , search)))
{
new_subject += strlen(search);
c++;
}
final_size = (strlen(replace) - strlen(search))*c + strlen(subject);
printf("final size %d \n" , final_size);
new_subject = (char*)malloc(final_size + 1);
//temp = (char*)malloc(final_size + 1);
strcpy(new_subject , "");
old = subject;
for(p = strstr(subject , search) ; p != NULL ; p = strstr(p+strlen(search) , search))
{
strncpy(new_subject + strlen(new_subject) , old , p - old);
strcpy(new_subject + strlen(new_subject) , replace);
old = p + strlen(search);
}
return new_subject;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment