si declaras un apuntador a una cadena de char se te puede facilitar el trabajo, aunque el hecho de declarar un array no lo hace mas complicado:
char array [100], buff[100];
char subcadena[10];
char reempl[10];
/*llenart el array con null*/
memset(array, ' ', sizeof (array));
memset(subcadena,' ',sizeof
memset(reemp,' ',sizeof(reemp):
gets(array);/*llenarlo con los datos
indicados*/
gets(subcadena;)
/**/
1-te desplazas hasta la ultima posicion de la palabra que estas buscando y copias todo de ahi en adelante e nla variable buff.
2-desde donde encontraste el primer campo de la palabra que buscabas, insertas la palabra nueva.
3-agregas un espacio y seguidamente copias en esta posicion todo lo que guardaste en buff y listo!!!
Es sencillo, la verdad iba a darte todo el codigo, pero no creo que eso sea una verdadera ayuda...
suerte, cualquier inquietud me cuentas y con gusto te respondo