Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: dato000 en 15 Septiembre 2012, 04:24 am



Título: Dudas con estructuras??
Publicado por: dato000 en 15 Septiembre 2012, 04:24 am
Buenas, muchach@s, tengo una duda, que se que no es tan dificil, pero no termino de entender. Retome mis estudios con C, y sigo leyendo por ahi, pero quisiera saber opiniones.

Porque no funciona el siguiente código?

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct persona
  5. {
  6.    //char nombre[30];
  7.    int edad;
  8.    float altura;
  9.    float peso;
  10. };
  11.  
  12. main()
  13. {
  14.    struct persona camilo;
  15.  
  16.    //camilo.nombre = "camilo";
  17.    camilo.edad = 24;
  18.    camilo.altura = 175;
  19.    camilo.peso = 75;
  20.    printf("Sizeof (persona) :  %d \n", sizeof(camilo));
  21.    //printf("nombre : \n", camilo.nombre);
  22.    printf("años : %d \n", camilo.edad);
  23.    printf("altura : %.2f \n", camilo.altura);
  24.    printf("peso) : %.2f \n", camilo.peso);
  25.  
  26. }
  27.  

Funciona perfectamente, menos para imprimir la cadena de texto, me sale el error:
Citar
C:\Users\dato000\Documents\c++\estructura2\main.c|16|error: incompatible types when assigning to type 'char[30]' from type 'char *'|

no termino de entender eso.


Título: Re: Dudas con estructuras??
Publicado por: xiruko en 15 Septiembre 2012, 04:48 am
en C las cadenas no las puedes asignar como cualquier numero, tienes que usar la funcion strcpy o strncpy de la libreria string.h (mejor la segunda ya que asi puedes limitar el numero de caracteres a copiar):

http://c.conclase.net/librerias/?ansifun=strncpy (http://c.conclase.net/librerias/?ansifun=strncpy)

Código
  1. strncpy(camilo.nombre, "camilo", sizeof(camilo.nombre)-1);

y para imprimir una cadena tienes que usar el especificador de formato %s:

Código
  1. printf("Nombre: %s\n", camilo.nombre);

luego stdlib.h no la usas para nada en el codigo asi que no haria falta incluirla. y no estaria mal que el main devolviera algun valor para saber si el programa acabo correctamente.

un saludo!



Título: Re: Dudas con estructuras??
Publicado por: dato000 en 15 Septiembre 2012, 05:19 am
oh chico no me sabia esa!!! gracias!!!!

funciona perfectamente, gracias!!