[LUG.ro Mix] Duda con C, la ultima, lo juro..

Matias Sanchez lugro-mix@lugro.org.ar
Wed, 5 Jul 2006 13:25:30 -0300


Disculpas por el Offtopic en lugro.
> Bueno, les pasteo el codigo:
>
> #include <stdio.h>
> #include <string.h>
>
> struct datos{
> char nombre[30];
> int cant;
> float precio;
>   };
>
> char *devuelve(float, int,struct datos);
>
> main()
>
> {
> int cant=0,nrogas=0;
> float preciodisp;
> struct datos gaseosa[5];
>
> gaseosa[3].cant = 5;
> gaseosa[3].precio = 2;
> strcpy(gaseosa[3].nombre,"Cocaloca");
> printf("Ingrese el nro de la gaseosa\n");
> scanf("%d",&nrogas);
>
> printf("Ingrese cantidad que desea\n");
> scanf("%d",&cant);
>
> printf("Ingrese el dinero del que dispone\n");
> scanf("%f",&preciodisp);
>
> printf("%s\n",devuelve(preciodisp,cant,gaseosa[nrogas]));
>
> }
>
> char *devuelve(float disp,int cant,struct datos gas)
> {
> static char dev[30];
>
> if(cant > gas.cant){
>  strcpy(dev,"La cantidad de gaseosa disponible es:");
>  strcat(dev,gas.cant)
>                            }
>
> return dev;
> }
>
> Es en realidad una reconstruccion de algo mucho mas grande, y solamente 
> para probar algo.
> Ahora va la pregunta. En la funcion devuelve que tengo que devolver un 
> puntero a char, necesito que dicho puntero tenga una cadena de caracteres 
> y ademas concatenarle, en este caso, el entero cant. Obviamente me tira 
> error el strcat, porque la funcion está definida con parametros char*, 
> pero no se me ocurre otra manera de hacerlo, siempre teniendo que devolver 
> un puntero a char y mostrando unicamente con el printf lo que me devuelve 
> la funcion.
> Se entiende? Alguien con alguna idea?
> Muchas gracias muchachos.