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.
Registrado: 01 Oct 2004 Mensajes: 3657 Ubicación: Mexico
Publicado: 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
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"); }