Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fran6990 en 13 Junio 2012, 06:43 am



Título: Ayuda con este ejercicios de punteros!!
Publicado por: fran6990 en 13 Junio 2012, 06:43 am
Hola gente como va? Bueno queria hacerles una consulta a ver si pueden ayudarme...mañana tengo un parcial de C++ de varios temas...pero lo que todavia no me quedo muy claro es lo de punteros. me mandaron un parcial tipo para practicar, el primer ejercicio (y mas importante) me salio perfecto. pero en la parte de punteros la verdad no entiendo como hacerlo. les dejo lo que dice para ver si me pueden dar una mano:


2)Lee atentamente el siguiente codigo y responde:


main()
{
char *nom="ME ENCANTAN LOS PUNTEROS";
int i=0;


//1. Que hace la siguiente instruccion?

do{
} while(*(nom+i++));

//2. Que imprime el siguiente bloque?
do{
printf("%c", *(nom+i));
i--;
}while(i>=0);

//3. Como modificarias el codigo para emitir todas las letras A?


//4.Y para contar y emitir la cantidad de letras R?


system("pause");
return 0; }




Bueno este es el ejercicio del parcial tipo...si me pueden ayudar con estos puntos se los agradeceria mucho, ya que mañana  las 7 de la tarde tengo el parcial y ya veo que me toma algo asi, que es muy probable...y no voy a entenderlo.. Gracias!!


Título: Re: Ayuda con este ejercicios de punteros!!
Publicado por: x64core en 13 Junio 2012, 10:06 am
//1. Que hace la siguiente instruccion?

do{
} while(*(nom+i++));

primero suma la variable i al puntero nom, luego es incrementada la i, luego se obtiene el caracter que esta apuntando nom y se verifica si es nulo, si lo es
entonces sale del bucle sino continua

//2. Que imprime el siguiente bloque?
do{
printf("%c", *(nom+i));
i--;
}while(i>=0);

inprime el caracter apuntado por puntero que es incrementado antes por i, luego es la i es decrementada y luego se verifica si i es >= 0





Título: Re: Ayuda con este ejercicios de punteros!!
Publicado por: david_BS en 16 Junio 2012, 17:05 pm
cuando declarás una cadena de char como lo hicistes así:

Código:
char *nom="ME ENCANTAN LOS PUNTEROS";

tenés que hacerlo de esta forma, insertando el cero delimitador ("\0")

Código:
char *nom="ME ENCANTAN LOS PUNTEROS\0";



Título: Re: Ayuda con este ejercicios de punteros!!
Publicado por: rir3760 en 19 Junio 2012, 04:22 am
No es necesario. Toda cadena literal por ejemplo:
Código
  1. char *msg = "Hola";

Es en realidad un array anónimo (sin nombre) que se almacena en alguna dirección de memoria y consiste de los caracteres indicados mas el terminador de cadena '\0'.

Un saludo