elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda punteros sencillo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda punteros sencillo  (Leído 2,266 veces)
adexrn

Desconectado Desconectado

Mensajes: 4


Ver Perfil
ayuda punteros sencillo
« en: 1 Marzo 2012, 14:18 pm »

¿Ayuda programacion c punteros?
ola tengo que hacer este ejercicio usando punteros, este programa te pide una palabra y te la devuelve alreves


Código
  1. #include<conio.h>
  2. #include<stdlib.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. int main(void)
  6. {
  7. char frase[120];
  8. int f, longitud;
  9. printf ("Introduce una frase: ");
  10. scanf ("%s",frase);
  11. longitud=strlen(frase)-1;
  12. printf ("\n\rLa frase invertida es: ");
  13. for (f=longitud; f>=0; f--)
  14. {printf ("%c", frase[f]);
  15. }
  16.  
  17. }





este programa funciona pero me pueden decir como lo puedo usar utilizando punteros aqui
he provado definiendo un *puntero y asignarlo a texto y despues imprimir el puntero pero no se como es

gracias de antemano


« Última modificación: 1 Marzo 2012, 14:22 pm por Eternal Idol » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: ayuda punteros sencillo
« Respuesta #1 en: 1 Marzo 2012, 15:36 pm »

Siendo pesados ya estas utilizando punteros, ello debido a que el operador "[]" requiere que uno de sus operandos sea un puntero y el otro un entero.

Supongo lo que deseas es utilizar una variable de tipo "char *" para realizar el proceso. Eso es fácil pero antes hay que indicar dos errores en el programa:
Código
  1. printf ("Introduce una frase: ");
  2. scanf ("%s",frase);
El primero es lógico: al utilizar "%s" la función "scanf" no lee una frase como "anita lava la tina", solo lee una palabra. El otro es un error en potencia a la misma altura que el uso de "gets": no se limita la lectura de caracteres y ello puede causar una escritura mas allá de la capacidad del array.

Regresando al programa y modificando este para utilizar una variable del tipo mencionado (por supuesto solo es una de varias posibles soluciones):
Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. #define NUM_CHARS  100
  5.  
  6. int main(void)
  7. {
  8.   char frase[NUM_CHARS];
  9.   int i;
  10.   char *p;
  11.  
  12.   printf("Introduce una frase: ");
  13.   fflush(stdout);
  14.   fgets(frase, NUM_CHARS, stdin);
  15.  
  16.   for (i = 0; frase[i] != '\0'; i++)
  17.      ;
  18.   if (i > 0 && frase[i - 1] == '\n')
  19.      frase[--i] = '\0';
  20.   p = frase + i;
  21.  
  22.   while (p-- > frase)
  23.      putchar(*p);
  24.   putchar('\n');
  25.  
  26.   return EXIT_SUCCESS;
  27. }

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
adexrn

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: ayuda punteros sencillo
« Respuesta #2 en: 1 Marzo 2012, 21:53 pm »

Ok muchas gracias me salvaste la vida ;D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda]con punteros en asm
ASM
ny0x 4 6,730 Último mensaje 12 Mayo 2009, 21:45 pm
por ny0x
Ayuda punteros. [c++]
Programación C/C++
ninto33 3 3,781 Último mensaje 19 Enero 2011, 01:46 am
por ninto33
[Ayuda] Ejercicio sencillo en C
Programación C/C++
Torino10 7 4,005 Último mensaje 25 Abril 2012, 18:44 pm
por Torino10
ayuda con punteros de C
Programación C/C++
LeoJ24 1 1,693 Último mensaje 11 Enero 2013, 18:13 pm
por durasno
Ayuda con Código Sencillo
Java
LaLakers94 5 2,887 Último mensaje 9 Noviembre 2013, 21:00 pm
por Mitsu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines