y para revertir la palabra/frase menos el primer y último caracter puedes intentar algo parecido a esto.
Código C:
Ver originalchar palabra[]="aoieu";
int tamano=sizeof(palabra)/sizeof(char)-1; //-1 por el caracter nulo del final
for (int i=1;i<tamano/2;i++){
char temp=palabra[i];
palabra[i]=palabra[tamano-i-1];
palabra[tamano-i-1]=temp;
}