RE:Cadena Invertida con punteros
Hola,
Lo priemro es poder recorrer la cadena e imprimirla en orden.
Este ejemplo va a tener una cadena que termina en el caracter '\0', si usas otro caracter para terminar la cadena solo cambia donde parece eso:
-------------------------------------------------------------------
void main()
{
char *cadena="123456789\0";//aqui esta almacenada la cadena
char *puntero;//puntero a caracter que usaremos para recorrer la cadena
puntero=cadena;//apuntar al primer caracter de la cadena
do{
printf("%c",*puntero);//imprimir caracter al que estamos apuntando
puntero++; //ir al siguiente caracter
}while(*puntero!='\0');//hacerlo hasta encontrar el caracter que termina la cadena
}
-------------------------------------------------------------------
Ahora, para imprimirla invertida, pues en la primera pasada en lugar d eimprimir lso caracteres vamso contando cuantos son, y ya en una segunda pasada vamos imprimiendo los caracteres de el ultimo caracter al primero.
-------------------------------------------------------------------
#include "stdio.h";
void 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
}
-------------------------------------------------------------------