C Replace String

Here a function pointer replace is created in which variables st, orig, repl of pointer type are declared.

C Replace String


In this section, you will learn how to replace a string in C. 

Here a function pointer replace is created in which variables st, orig, repl of pointer type are declared. The st represents the string, orig represents the substring which is to be replaced and repl represents the replaced substring. The statement if(!(ch = strstr(st, orig))) checks, if the substring which is to be replaced from the string is not appeared in the string then it returns the string. Otherwise the statement strncpy(buffer, st, ch-st) copies the characters from st to ch-st up to the size of Buffer. You can see in the given example we have declare the string st Hello World and we are replacing the string world with India.

Here is the code:


#include <stdio.h>
#include <conio.h>
#include <string.h>

char *replace(char *st, char *orig, char *repl) {
  static char buffer[4096];
  char *ch;
  if (!(ch = strstr(st, orig)))
   return st;
  strncpy(buffer, st, ch-st);  
  sprintf(buffer+(ch-st)"%s%s", repl, ch+strlen(orig));
  return buffer;
void main() {
  puts(replace("Hello world!""world""India"));

Output will be displayed as:


Download Source Code:




We have 1000s of tutorials on our website. Search Tutorials tutorials on our website.

Share on Google+Share on Google+

C Replace String

Posted on: February 6, 2009 If you enjoyed this post then why not add us on Google+? Add us to your Circles



Discuss: C Replace String  

Post your Comment

Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
September 27, 2011

Very Useful tips
November 16, 2011
How to replace string more than once appears ?

I try code above, but that's just replace one pattern. If any other patern occure, that will not replace it.....
June 8, 2012

write a c program to change the every word "ramesh "into "manesh"......
December 19, 2012
This will fail in some cases

If input is "hello world this is world", "world", "india" then only first 'world' will be replaced
November 30, 2012
Poor programming

- assumes that the string has a maximum length of 4k after replacement - doesn't address the case of several occurences of the string - the result is a pointer to a static location: not to be used in multithreaded environment, and needs to copy the result if you call the function several times. - obscure programming of the test Yuck