Probabilmente è una domanda banale ma ho uno stupido problema di stringhe

In pratica se all'inizio del programma dichiaro un array di char e lo inizializzo a un certo valore e se poi dopo voglio cambiare tale valore mi dà problemi...vi faccio vedere che è meglio:

codice:
#include <stdio.h>
#include <stdlib.h>

void mystrcpy1(char [], char []);

int main(){

        char s[10] = "prova";
        char t[10];

        printf("La stringa s equivale a: %s\n", s);
        printf("La stringa t equivale a: %s\n", t);
        printf("Copio la stringa s nella stringa t con la funzione mystrcpy1\n");

        mystrcpy1(s,t);

        printf("La stringa t ora vale %s\n\n", t);

        s[] = "ciao";   // Dà problemi

        return 0;
}

        void mystrcpy1(char s[], char t[]){

                int i=0;
                while((t[i] = s[i]) != '\0')
                        i++;
        }
La parte che dà problemi è: s[] = "ciao"; // Dà problemi
Come faccio a cambiare il valore di tale stringa e metterci dentro una nuova parola?

Grazie