在c中用另一个字符串替换字符串的一部分的最佳方法?

nik*_*der 5 c string replace

可能重复:
如何替换c中的子字符串?

我试图寻找一个更好的解决方案来解决这个问题.有可用的代码,但都适用于C++.不要忘记这在Java中非常简单和基本.我想要一个很好的C解决方案?

任何帮助将不胜感激!谢谢!

Tud*_*dor 4

在谷歌上找到的简单解决方案:http://www.linuxquestions.org/questions/programming-9/replace-a-substring-with-another-string-in-c-170076/

编辑:考虑到您的规范,我编辑了链接中的代码:

char *replace_str(char *str, char *orig, char *rep, int start)
{
  static char temp[4096];
  static char buffer[4096];
  char *p;

  strcpy(temp, str + start);

  if(!(p = strstr(temp, orig)))  // Is 'orig' even in 'temp'?
    return temp;

  strncpy(buffer, temp, p-temp); // Copy characters from 'temp' start to 'orig' str
  buffer[p-temp] = '\0';

  sprintf(buffer + (p - temp), "%s%s", rep, p + strlen(orig));
  sprintf(str + start, "%s", buffer);    

  return str;
}
Run Code Online (Sandbox Code Playgroud)