Per come è riportato il codice, non compila nemmeno.
codice:
void sposta(tvettchar &vc, int N){
   char C; // Si può sapere cosa dovrebbe contenere?
   for(int I=ricerca(vc,0,N-1,assegna(C));I<N-1;I++)
   vc[I] = vc[I+1];
}

void cancella(tvettchar &vc, int &N){
    int I;
    for(I=0;I<N;I++){
         if(!assegna){ // E' una funzione o una variabile? E se è una funzione com'è possibile che compili? E cosa dovrebbe ricevere quella funzione?
            sposta(vc,N);
            N--;
        }
    }
}