Punteros Tocahuevos!!!

Rbsmarte
13 de Junio del 2003
Necesito hacer una funcion parecida a la de abajo, pero sin usar arrays ni strings, creo que la mejor forma de hacerlo es con punteros pero no se como hacerlo exactamente, asi que si podeis ayudarme os lo agradeceria.

#include <stdio.h>
#include <ctype.h>
#include <conio.h>
#include <string.h>

#define TRUE 1
#define FALSE 0

char letras[80];
int aux, cont, contr, indicador, bucle = TRUE;

void main(void)
{
clrscr();
indicador = TRUE;
/* Leer la frase */
printf("Introduce una frase : n");
gets(letras);
strupr(letras);
aux = strlen(letras) - 1;
/* Realizar la busqueda */
for ((cont=0,contr=aux);cont<=aux/2;(++cont, --contr))
{
while (letras[cont] == ' ')
++cont;
while (letras[contr] == ' ')
--contr;
if (letras[cont] != letras[contr])
{
indicador = FALSE;
break;
}
}
/* Escribir mensaje */
if (indicador==TRUE)
printf("SI es un palindromonn");
else
printf("NO es un palindromonn");
getch();
}

P.D: ES para saber si una palabra es un palindromo, es decir si se escribe igual del derecho que del reves.

Jorge
13 de Junio del 2003
Si lo que quieres es usar algo de punteros, pues tienes que saber que el nombre de un string, una cadena, es un puntero al primer elemento, por lo que una instruccion de este tipo: cadena[i] es lo mismo que si pusieras *(cadena+i), paso a explicar: cadena apunta al primer elemento, y cuando le sumas i, en realidad no lo sumas normalmente si no que le estas diciendo que se incremente i lugares mas adelante..si necesitas mas explicaciones de esto me escribes a mi correo, [email protected]

El * que aparece significa que lo que quieres es el contenido de la direccion (cadena+i)

Cuando haces char letras[80], letras es un puntero a la primera letra de la palabra que entres