Zastępowanie znaku w ciągu [duplikat]

Możliwy duplikat:
Jaka jest funkcja zastępowania ciągu w C?

Próbuję zastąpić określony znak w moim ciągu wieloma znakami. Oto przykład tego, co próbuję zrobić.

Powiedz, że mam ciąg „aaabaa”

Chcę zastąpić wszystkie wystąpienia znaku „b” znakami 5 ”c”.

Kiedy skończę, „aaabaa” staje się „aaacccccaa”

Napisałem następujący kod:

#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);
}

Moje wyjście z tej funkcji to „aaaccccc”. Wygląda na to, że po prostu nadpisuje ostatnie dwa a za pomocą c. Czy jest jakiś sposób, w jaki mógłbym to zrobić, aby te ostatnie pary nie zostały zastąpione?

questionAnswers(7)

yourAnswerToTheQuestion