Reemplazo de caracteres en una cadena [duplicado]

Posible duplicado:
¿Cuál es la función para reemplazar la cadena en C?

Estoy tratando de reemplazar un cierto carácter en mi cadena con varios caracteres. Aquí hay un ejemplo de lo que estoy tratando de hacer.

Di que tengo la cuerda "aaabaa"

Quiero reemplazar todas las apariciones del carácter "b" con 5 "c" s.

Así que cuando termine, "aaabaa" se convierte en "aaaccccca"

He escrito el siguiente código:

#include <stdio.h>
#include <string.h>
int main(void)
{
    char s[20] = "aaabaa";
    int i, j;
    for (i=0; s[i]!= '\0'; i++)
    {
        if (s[i] == 'b')
        {
            for (j=0; j<5; j++)
            {
                s[i+j] = 'c';
            }
        }
    }
    printf("%s\n", s);
}

Mi salida de esta función es "aaaccccc". Parece que solo sobrescribe las dos últimas a con las c. ¿Hay alguna forma de que lo tenga para que no se sobrescriban estos últimos dos a?

Respuestas a la pregunta(7)

Su respuesta a la pregunta