• Domingo 15 de Diciembre de 2024, 18:31

Autor Tema:  Ejercicio Con Puntero  (Leído 1633 veces)

pablo_ivan57

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Ejercicio Con Puntero
« en: Lunes 6 de Agosto de 2007, 04:59 »
0
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.

LeGatoRojo

  • Miembro HIPER activo
  • ****
  • Mensajes: 552
  • Nacionalidad: mx
    • Ver Perfil
    • LeGatoRojo
Re: Ejercicio Con Puntero
« Respuesta #1 en: Lunes 6 de Agosto de 2007, 20:48 »
0
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...?
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.

pablo_ivan57

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Ejercicio Con Puntero
« Respuesta #2 en: Martes 7 de Agosto de 2007, 00:59 »
0
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.

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Ejercicio Con Puntero
« Respuesta #3 en: Martes 7 de Agosto de 2007, 16:52 »
0
: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
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


Ithilien

  • Miembro MUY activo
  • ***
  • Mensajes: 116
    • Ver Perfil
Re: Ejercicio Con Puntero
« Respuesta #4 en: Miércoles 15 de Agosto de 2007, 10:58 »
0
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!