<?xml version="1.0" encoding="UTF-8"?>
<codes type="array">
  <code>
    <code>char *
str_replace(char *str, char *old, char *new) {
  int i, count = 0;
  int newlen = strlen(new);
  int oldlen = strlen(old);
  
  for (i = 0; str[i]; ++i)
    if (strstr(&amp;str[i], old) == &amp;str[i])
      ++count, i += oldlen - 1;
  
  char *ret = (char *) calloc(i + 1 + count * (newlen - oldlen), sizeof(char));
  if (!ret) return;
  
  i = 0;
  while (*str)
    if (strstr(str, old) == str)
      strcpy(&amp;ret[i], new),
      i += newlen,
      str += oldlen;
    else
      ret[i++] = *str++;
    
  ret[i] = '\0';

  return ret;
}</code>
    <comment>Pretty weak first pass at a character array substitution func</comment>
    <created-at type="datetime">2009-06-23T21:23:59+00:00</created-at>
    <id type="integer">930</id>
    <language>C</language>
    <permalink>str_replace</permalink>
    <refactors-count type="integer">1</refactors-count>
    <title>str_replace</title>
    <trackback-url></trackback-url>
    <updated-at type="datetime">2009-06-27T06:15:38+00:00</updated-at>
    <user-id type="integer">634</user-id>
    <user>
      <id type="integer">634</id>
      <identity-url>http://tjholowaychuk.myopenid.com</identity-url>
      <name>Tj Holowaychuk</name>
      <rating type="float">3.8333</rating>
      <refactors-count type="integer">195</refactors-count>
      <website>http://vision-media.ca</website>
    </user>
  </code>
</codes>
