SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: pablo_ivan57 en Lunes 6 de Agosto de 2007, 04:59

Título: Ejercicio Con Puntero
Publicado por: pablo_ivan57 en Lunes 6 de Agosto de 2007, 04:59
Hola a todos, primero quisiera que vean este algoritmo, es un metodo que nos enseñaron para darle la vuelta a un numero.Tengo que modificarlo para ver si es palindromo o no lo que se ingreso, y pues no se como hacerlo de esta forma, y tengo totalmente prohibido usar vectores o matrices.Voy a poner como comentario las partes que quiero que me ayuden.

#include "stdio.h"
void main()
{
 char *p="Hola que tal" /*Quisiera que esta cadena la pusiera el usuario, ¿Como hago?*/
 char *aux;
 printf("\n Cadena Original\n");
 puts(p);
 for(aux=p;*aux;aux++);/*Esta parte se dezplaza al final de la cadena*/
  printf("Cadena al revés\n");
 for(--aux;aux>=p;aux--);
  putchar(*aux);/*Aqui pone uno a uno las letras al revés,esta parte es la que quiero                                                                    
                          modificar, necesito que cada letra se guarde concatenada en un
                          puntero, de la forma *t="lat euq aloh", para luego poder comparala
                          con sentencias for *p con *t*/
}

Por favor ayudenme con esto que ya que me han enseñado muy poco de punteros, y realmente necesito esto.
Muchas Gracias.
Título: Re: Ejercicio Con Puntero
Publicado por: LeGatoRojo en Lunes 6 de Agosto de 2007, 20:48
Código: Text
  1. gets(p);
  2.  
Asi logras que lo capture el usuario, obvio incluyendo string.h
y la segunda parte no la entiendo, concatenada en un puntero...? es una asignacion...?
Título: Re: Ejercicio Con Puntero
Publicado por: pablo_ivan57 en Martes 7 de Agosto de 2007, 00:59
Que tal muchas gracias por la respuestas en verdad me ayuda muchisimo el gets, acerca de la segunda parte, quiero que con este codigo:

for(--aux;aux>=p;aux--)
  putchar(*aux);

En vez del putchar, quiero que cada aux se vaya poniendo en un puntero, es decir para que quede despues del for como si lo hubiera declarado asi: *p=Palabra al revez, en donde aux representa cada letra de la palabra al revez que se fue poniendo en el puntero mediante el for, para poder comparar los dos punteros que tendría, el normal y el dado la vuelta, pero aquí es donde viene mi duda, puedo simplemente comparar 2 punteros de esta forma?, me explico mejor, puedo hacer esto?:

       Supongamos *p=Palabra y *t=Palabra al revéz
       if(*p=*t)
         printf("Es palíndromo")
O necesariamente tengo que hacerlo poscion por posición.
Gracias.
Saludos.
Título: Re: Ejercicio Con Puntero
Publicado por: Bicholey en Martes 7 de Agosto de 2007, 16:52
:D  :D  :D  :D  :D  :D


Las igualdades o comparaciones siempre las hice con numeros, en este caso existe en la libreria string un comando que compara dos palabaras creo que es strcmp pero mejor checa todas las funciones en este lugar:

http://c.conclase.net/librerias/funciones.php (http://c.conclase.net/librerias/funciones.php)
Título: Re: Ejercicio Con Puntero
Publicado por: Ithilien en Miércoles 15 de Agosto de 2007, 10:58
Para cadenas, yo siempre uso strcmp. Ojo, esta función devuelve cero cuando son iguales y distinto cuando son diferentes, por lo que
Código: Text
  1.  
  2. if ( !strcmp ){
  3. ....iguales...
  4. }else{
  5. ....diferentes....
  6. }
  7.  
  8.  

Saludos!