Zeichen in einer Zeichenfolge ersetzen [duplizieren]

Mögliche Duplikate:
Was ist die Funktion zum Ersetzen der Zeichenfolge in C?

Ich versuche, ein bestimmtes Zeichen in meiner Zeichenfolge durch mehrere Zeichen zu ersetzen. Hier ist ein Beispiel, was ich versuche zu tun.

Angenommen, ich habe die Zeichenfolge "aaabaa"

Ich möchte alle Vorkommen des Zeichens "b" durch 5 "c" ersetzen.

Wenn ich fertig bin, wird "aaabaa" zu "aaacccccaa"

Ich habe folgenden Code geschrieben:

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

Meine Ausgabe von dieser Funktion ist "aaaccccc". Es sieht so aus, als ob nur die letzten beiden Buchstaben mit den Buchstaben c überschrieben werden. Gibt es eine Möglichkeit, wie ich es hätte, damit diese letzten paar von a nicht überschrieben werden?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage