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?