c 언에에서는 문자열을 char *로 사용을 하는데요. 문자열을 교체 "ABC"  ->"CBA" 로 변환해주는 함수가 있을꺼 같은데, 없습니다. 만들어서 사용을 하거나 혹은 strncpy()을 조합해서 사용해야 합니다. 

 만들어서 사용을 하면 예외처리나 검증이 되지 않아서 불안합니다. 또 다른 방법인 strstr()과 strncpy()를 이용하는 방법도 큰 오류가 있습니다. 아래에 코드로 보시면 이해가 되시리라 생각됩니다. 

 replace 함수는 구글링을 해본 결과 쉽게 검색이 됩니다. 하지만 완벽한 코드이지 검증이 되지 않아서 찾아보고 좋은 소스가 있므면 포스팅 하도록 하겠습니다. 

strstr()과 strncpy()를 이용한 문자열 교체 방법 샘플 코드를 입니다.
#include <stdio.h>
#include <string.h>

int main ()
{
  char str[] ="This is a simple string";
  char * pch;
  pch = strstr (str,"simple");
  strncpy (pch,"sample",6);           // 결과 : This is a sample string
  //strncpy (pch,"sample test",12);  // 결과 : This is a sample test 


  return 0;

}

http://www.cplusplus.com/reference/cstring/strstr/

위에 코드를 간략하게 소개를 하면 strstr을 이용해서 해당 문자(simple)가 있는 포인터를 찾습니다. 포인터를 pch에 저장을 합니다. pch에 strncpy를 이용해서 원하는 글자를 복사를 합니다. 그런데 이렇게 복사를 할 경우 문제가 발생합니다. simple , sample 처럼 같은 자리수를 변환을 하면 문제가 없겠지만 , 주석 처리된 부분 처럼 해당글자를 넘는 글자를 복사하게 되면 기존 데이터가 변형이 발생하게 됩니다. 


 단순히 ABC를 abc로 변환을 할때는 문제가 없으나 ABC를 abcd로 바꾸면 자릿수 문제가 발생할 수 있습니다. 


끝!