Substituindo caractere em uma string [duplicada]
Duplicata Possível:
Qual é a função para substituir string em C?
Eu estou tentando substituir um determinado caractere na minha seqüência de caracteres com vários caracteres. Aqui está um exemplo do que estou tentando fazer.
Digamos que eu tenha a string "aaabaa"
Eu quero substituir todas as ocorrências do caractere "b" com 5 "c" s.
Então, quando eu terminar, "aaabaa" se tornará "aaacccccaa"
Eu escrevi o seguinte 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);
}
Minha saída desta função é "aaaccccc". Parece que apenas sobrescreve os dois últimos a's com os c's. Existe alguma maneira que eu teria para que estes últimos dois não sejam sobrescritos?