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

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


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.