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

Nicolás Aimetti lugro-mix@lugro.org.ar
Wed, 05 Jul 2006 15:50:26 +0000


Hola.

Te conviene usar sprintf en vez de strcpy y strcat. En caso de que 
hubieses querido usar strcat en vez de sprintf tendrias que antes 
convertir en entero cant en un str y luego concatenarlo. Pero bueno,
para lo que quer'es hacer viene mejor sprintf.

char *devuelve(float disp,int cant,struct datos gas)
{
         static char dev[30];

         if(cant > gas.cant){
                 sprintf(dev,"La cantidad de gaseosa disponible es: 
%d\n",gas.cant);
         }

         return dev;
}


el codigo en general se puede corregir bastante m'as, pero me limito 
nomas a responder la pregunta simplemente por razones de tiempo m'as que 
nada.

Saludos,
Nicol'as.


Matias Sanchez wrote:
> 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. 
> 
> 
> _______________________________________________
> Lugro-mix mailing list
> Lugro-mix@lugro.org.ar
> http://www.lugro.org.ar/mailman/listinfo/lugro-mix
>