• Viernes 8 de Noviembre de 2024, 07:05

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Bond

Páginas: [1]
1
C/C++ / Re: Puntero, Cantidad De Caracteres En Una Cadena
« en: Sábado 1 de Septiembre de 2007, 09:58 »
Recuerda que el nombre de un array, en este caso s, actua como un puntero conteniendo la dirección de inicio de ese array en memoria, por lo tanto al hacer esto:

if(s==s)

comparas un entero, con un puntero por lo que el compilador se queja.

Un saludo

2
C/C++ / Re: Cadena Invertida Puntero
« en: Viernes 31 de Agosto de 2007, 20:58 »
Cita de: "jose_c27"
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
Pues yo también estoy aprendiendo así que me he echo yo el programita para practicar, aquí te pego la chapuza  de otro novato en el tema  ;)

Código: Text
  1.  
  2. #include <stdio.h>
  3.  
  4. int main() {
  5.  
  6.    static char cadena[100], cadinv[100];
  7.    char *pcad = cadena;
  8.    char *pfin = NULL, *pinv = cadinv;
  9.  
  10.    int n = 0, i = 0;
  11.  
  12.    puts("cadena: ");
  13.    gets(pcad);
  14.  
  15.    while(*(pcad+n))
  16.       n++;
  17.  
  18.    n--;
  19.  
  20.    pfin = pcad + n;
  21.  
  22.    while(pfin - pcad)
  23.    {
  24.       *(pinv + i) = *pfin;
  25.       i++;
  26.       pfin--;
  27.    }
  28.    *(pinv + i ) = *pfin;
  29.  
  30.    puts(pinv);
  31.  
  32.    return 0;
  33.  
  34. }
  35.  
  36.  
  37.  
  38.  


Yo lo he planteado así:

un puntero pcad que apunta al inicio de la cadena, otro puntero pfin que apuntará al final de la cadena, y después otro llamado pinv que apunta al nuevo array de caracteres que contendrá la cadena invertida.

Entonces una vez que tienes la dirección del final de la cadena, es recorriendo caracter a caracter y copiandolo al array cadinv apuntado por pinv, hasta que que llegues al inicio de la cadena.


Espero haberte ayudado.

Un saludo

3
C/C++ / Re: Segmentation Fault En Programa C
« en: Miércoles 29 de Agosto de 2007, 09:49 »
Cita de: "Eternal Idol"
Asi como hiciste:
&persona.telefono

Tenes que hacer lo mismo con la fecha, pasarle la direccion de memoria y no el valor a scanf.
Gracias Eternal Idol, vaya fallo más tonto y lo peor que ni lo encontraba :(

Un saludo

4
C/C++ / Segmentation Fault En Programa C
« en: Miércoles 29 de Agosto de 2007, 08:10 »
Un saludo a todos.


En un programa de c muy básico sobre estructuras, obtengo un segmentation fault en la ejecución y no soy capaz de ver el fallo.

El programa es este:

Código: Text
  1.  
  2. #include <stdio.h>
  3.  
  4. struct fecha
  5. {
  6.    int dia, mes, anyo;
  7. };
  8.  
  9. struct ficha
  10. {
  11.    char nombre[40];
  12.    char direccion[40];
  13.    long telefono;
  14.    struct fecha fecha_nacimiento;
  15. }tficha;
  16.  
  17.  
  18. int main()
  19. {
  20.    struct ficha persona, otra_persona;
  21.  
  22.    
  23.    printf("Nombre:  ");
  24.    gets(persona.nombre);
  25.    printf("Direccion:  ");
  26.    gets(persona.direccion);
  27.    printf("telefono:  ");
  28.    scanf("%ld", &persona.telefono);
  29.    printf("Fecha nacimiento:\n");
  30.    printf("Dia:    ");
  31.    scanf("%d", persona.fecha_nacimiento.dia);
  32.    printf("Mes:    ");
  33.    scanf("%d", persona.fecha_nacimiento.mes);
  34.    printf("Anyo    ");
  35.    scanf("%d", persona.fecha_nacimiento.anyo);
  36.    
  37.    
  38.    otra_persona = persona;
  39.  
  40.    
  41.    printf("\n\n");
  42.    printf("Nombre:  %s\n", otra_persona.nombre);
  43.    printf("Direccion:   %s\n", otra_persona.direccion);
  44.    printf("Telefono:  %ld\n", otra_persona.telefono);
  45.    printf("FEcha nacimiento\n");
  46.    printf("dia:    %d\n", otra_persona.fecha_nacimiento.dia);
  47.    printf("mes:    %d\n", otra_persona.fecha_nacimiento.mes);
  48.    printf("anyo:  %d\n", otra_persona.fecha_nacimiento.anyo);
  49.  
  50. }
  51.  
  52.  


Como podéis ver lo único que hace este programa es crear 2 estructuras, introducir datos en una através del teclado, copiar una a otra, y después imprimir la última por monitor.



Todo compila bien y a la hora de ejecución pasa esto:

Código: Text
  1.  
  2. debian$ ./e1
  3. Nombre: sonny
  4. Direccion:      av america
  5. telefono:       33333333
  6. Fecha nacimiento:
  7. Dia:            5
  8. Mes:            5
  9. Segmentation fault
  10.  
  11.  
  12.  


No consigo ver que estoy haciendo mal.


Gracias anticipadas.

Páginas: [1]