Intanto questa condizione è sbagliata:
Lo stesso carattere non può essere minore di 'A' e contemporanemente maggiore di 'Z'.codice:if((vc[I] <= 'A')&&(vc[I] >= 'Z')||(vc[I] <= 'a')&&(vc[I] >= 'z')){
codice:void sposta(tvettchar &vc, int N){ char canc; // questa non è inizializzata. int posiz = ricerca(vc,0,N-1,canc); for(int I=posiz;I<N-1;I++) vc[I] = vc[I+1]; }