/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Cadena Invertida con Punteros

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
jose_c27



Registrado: 31 Ago 2007
Mensajes: 10

MensajePublicado: 31/08/2007 7:07 am
Título: Cadena Invertida con Punteros

Saludos, soy bien nuevo en el mundo de la programacion y actualmente en la universidad estoy viendo punteros los cuales he visto muy poco....quisiera saber si me pudieran dar una idea con punteros de como podria realizar un programa que reciba una cadena y la imprima invertida, no puedo utilizar strlen, stcpy, strcat.

Muchas Gracias por adelantado
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3657
Ubicación: Mexico

MensajePublicado: 31/08/2007 7:32 am
Título:

Lo primero que debes hacer es colocarte al final de la cadena:
Código:
for (p = cadena; *p != '\0'; p++)
   ;


A continuacion solo tienes que imprimir cada caracter empezando con el ultimo y terminando con el primero:
Código:
while (p-- > cadena){

   /* ... impresion de *p ... */
   
}


Trata de hacerlo tu solo y donde tengas una duda concreta te ayudamos, si requieres de tutoriales sobre punteros hay algunos listados en la seccion "Cursos" de este sitio.

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
jose_c27



Registrado: 31 Ago 2007
Mensajes: 10

MensajePublicado: 31/08/2007 6:20 pm
Título:

Muchas gracias me sirvio de mucha ayuda aqui ya lo termine

Código:

#include "stdio.h";
#include <stdlib.h>

int main()
{

char *cadena="123456789\0";//aqui esta almacenada la cadena
char *puntero;//puntero a caracter que usaremos para recorrer la cadena
int i;//contador para ver cuntas letras tiene la cadena

puntero=cadena;//apuntar al primer caracter de la cadena
i=0;//para comenzar a contar
do{
i++;//contar un caracter mas
puntero++; //ir al siguiente caracter
}while(*puntero!='\0');//hacerlo hasta encontrar el caracter que termina la cadena

//aqui puntero sigue apuntando al final de la cadena, asi que vamos a regresarnos un caracter, que es la ultima letra de la palabra
puntero--;
//ahora si a imprimir de atras hacia el principio
do{
printf("%c",*puntero);
i--;//decrementar contador, cuando lelgue a cero es que ya terminamos de imprimir la cadena
puntero--; //ir a la letra anterior
}while(i>0);//hacerlo hasta encontrar el caracter que termina la cadena
system("pause");
}
[/code]
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3657
Ubicación: Mexico

MensajePublicado: 31/08/2007 7:00 pm
Título:

El programa tiene algunos errores y se puede reducir a (C estandar):
Código:
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   char *cadena = "123456789";
   char *p;
   
   for (p = cadena; *p != '\0'; p++)
      ;
   
   while (p-- > cadena)
      putchar(*p);
   putchar('\n');
   
   return EXIT_SUCCESS;
}



Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com