Per lo OP
Non è per nulla facile
In C gli array, comprese le stringhe, hanno lunghezza fissa predefinita a compile-time
Se usi array locali, anche stringhe, possono avere lunghezza definita a run-time, ma non viene considerata cosa buona
Ti tocca di contare i caratteri da sostituire
Calcolare la nuova lunghezza, mi raccomando il terminatore
Allocare un'area di memoria
Scriverci dentro la nuova stringa
E poi usare quella
E in mezzo ci metti che il nome della stringa (vecchia) essendo un nome di array non può puntare alla stringa nuova, tocca di risolvere anche questo
Insomma quando avrai fatto avrai imparato tanto