1. Условие
Даны натуральное число n, символы s1, s2, ... ,sn. Заменить в этой последовательности каждую группу букв child группой букв children.
2. Решение
Задаем количество символов в строке. Выделяем блок оперативной памяти под строку. Осуществляем ввод символов. Подсчитываем количество вхождений слова "child" в строке. Выделяем блок памяти под строку, куда будет записан результирующий массив. В цикле производим инициализацию нового массива. Все слова "child" заменяем на "children".
3. Алгоритм решения

4. Текст программы
1 : #include <stdio.h>
2 : #include <stdlib.h>
3 : #include <conio.h>
4 : void main()
5 : {
6 : int i, n, l, s=0;
7 : char *a, *x;
8 : clrscr( );
9 : printf("\n Введите количество символов n \n n=");
10: scanf("%u", &n);
11: a=(char*)malloc( (n+1 )* sizeof(char) );
12: getchar( );
13: printf("\n Введите символы \n");
14: gets(a);
15: for(i=0; i<(n-4); i++)
16: if(a[i]=='c'&&a[i+l]=='h'&&a[i+2]=='i'&&a[n+3]=='l'&&a[n+4]=='d')
17: s++;
18: x=(char*)malloc((n+3*s+l)*sizeof(char));
19: l=n+3*s;
20: for(i=n; i>=0; i--)
21: if(a[i]!='d'||a[i-1]!='l'||a[i-2]!='i'||a[i-3]!='h'||a[i-4]!='c')
22: {
23: x[l]=a[i];
24: l--;
25: }
26: else
27: {
28: x[l]='n';
29: x[l-1]='e';
30: x[l-2]='r';
31: x[l-3]='d';
32: l=l-4;
33: }
34: printf("\n \n Новая последовательность символов: \n %s", x );
35: printf("\n \n \n Для завершения программы введите любой символ");
36: getch( );
37: free( a );
38: free( x );
39: }
5. Работа программы
Введите количество
символов n=13
Введите символы: chlidoprchild
Новая последовательность символов:childrenoprchildren
Для завершения программы введите любой символ
6. Проверка
Программа работает корректно.