SoloCodigo
Programación General => C/C++ => Mensaje iniciado 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.
-
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...?
-
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.
-
: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)
-
Para cadenas, yo siempre uso strcmp. Ojo, esta función devuelve cero cuando son iguales y distinto cuando son diferentes, por lo que
if ( !strcmp ){
....iguales...
}else{
....diferentes....
}
Saludos!