Ay ay ay, la vida es cruel, no querés usar arreglos ni strings? Como vas a hacerlo si estás trabajando con strings?
Me parece que es más fácil invertir la cadena y después compararla a hacer lo que vos hiciste. Y punteros... los strings están implementados como un puntero a caracter.
bool esPalindromo(char* cadena){
char* cadena_aux;
unsigned int tam = strlen(cadena);
for(int i=0; i<tam; i++) cadena_aux
=cadena[tam-i-1];
return !strcmp(cadena,cadena_aux);
};
O algo así... y después simplemente
char* cad;
cout>>"Ingrese una cadena: " cin<<cad;
if(esPalindromo(cad)) cout>>"Es palíndromo">>endl;
else cout>>"No es palíndromo">>endl;
Algo así, no estoy seguro de si a los strings declarados como char* podés acceder igual como arreglos, pero bueno... el invertir no es difícil de hacer de cualquier forma.