[ lejlaz @ 11.06.2009. 23:34 ] @
Sledecoj funkciji saljem argument (lista podataka, strukura) iz koje trebam da izvucem jedan podatak tipa char[15] (to bi trebalo da bude promjenljiva izabrana_kategorija). Kako da vratim taj podatak?

Evo fje:
Code:
 
char odredi_klasifikaciju (lista_kategorija l1)
{
    float max;
    char izbrana_kategorija[15];
    int i;
    for(i=0;i<l1.brclanova;i++)
    {
        if (l1.niz_kategorija[i].rezultat >= max)
        {
            strncpy(izbrana_kategorija, l1.niz_kategorija[i].ime_kat, 15);//zapamtimo ime kategorije
            max=l1.niz_kategorija[i].rezultat;
        }
    }
    //return ?;
}


Kad pokupim tu char[15] vrijednost preko funkcije, trebala bih je nekako vratiti u program kako bi dalje radila sa njom. Kakvom tipu podatka mi je u main-u jednako odredi_klasifikaciju(l1)?
[ deerbeer @ 12.06.2009. 09:07 ] @
Imas 2 nacina :
Prvi je da vracas char* pointer od niza napravljenog na heapu (new).
Code:
 
char* odredi_klasifikaciju (lista_kategorija l1)
{
     char* izbrana_kategorija = new char [15];
    ... 
    izbrana_kategorija ;
}

Drugi a dosta bolji nacin je kao f-ja strncpy
Da deklarises niz izvan f-je koji ce se popunjavati u f-ji odredi_klasifikaciju (..)
Code:

void  odredi_klasifikaciju (lista_kategorija l1,char*  izabrana_kartegorija )
{
   ...
   strncpy(izbrana_kategorija, l1.niz_kategorija[i].ime_kat, 15);//zapamtimo ime kategorije
     ...
}
[ lejlaz @ 12.06.2009. 09:47 ] @
Rijesila sam problem u fji, samo jos kako da u main-u pokupim vrijednost izabrane_kategorije iz fje?
[ Mihajlo Cvetanović @ 12.06.2009. 09:53 ] @
To zavisi od toga kako si rešila problem u funkciji. Pokaži kod.
[ lejlaz @ 12.06.2009. 10:00 ] @
Code:

void odredi_klasifikaciju (lista_kategorija l1, char * izbrana_kategorija)
{
    float max;
    int i;
    for(i=0;i<l1.brclanova;i++)
    {
        if (l1.niz_kategorija[i].rezultat >= max)
        {
            strncpy(izbrana_kategorija, l1.niz_kategorija[i].ime_kat, 15);
            max=l1.niz_kategorija[i].rezultat;
        }
    }
}

[ Mihajlo Cvetanović @ 12.06.2009. 10:19 ] @
Code:
lista_kategorija lx;
char ky[15];
...
odredi_klasifikaciju (lx, ky);

U baferu ky je ono što ti treba. Jesi li to pitala?
[ lejlaz @ 12.06.2009. 10:26 ] @
To mi je trebalo. Hvala puno!