[ pajac @ 12.05.2005. 16:58 ] @
Evo mi opet malog problema....

Code:

#define MAXREDOVA 100

struct line_info{
    int broj_reda;
    char jednaki[MAXREDOVA];
    char razlicni[MAXREDOVA];
};

int main(void){
    
    struct line_info fajl1;

    fajl1.broj_reda = 2;
    fajl1.jednaki = "nesto";
    fajl1.razlicni = "i jos nesto";

    return 0;
}//end main()


proba2.c:16: error: incompatible types in assignment ---> GREŠKA?!

Mozda koji hint, ja sam sprobo sve sta mi je palo na pamet u dva dana!!:(
[ X Files @ 12.05.2005. 17:47 ] @
Code:

fajl1.jednaki = "nesto";
fajl1.razlicni = "i jos nesto";


He, he... dakle, razmisljas razumno kako *treba* da se vrsi dodela stringova.
Na zalost to tako ne moze u C-u, ali moze u klasama koje se u praksi koriste.

Treba otprilike ovako (netestirano):

Code:

strcpy( fajl1.jednaki, "nesto" );
strcpy( fajl1.razlicni, "i jos nesto" );


ali moze u jednoj liniji pri deklaraciji:
Code:

char *text = "neki tekst";


ili

Code:

char tekst[] = "neki tekst";


ili u tvom slucaju, netestirano, probaj pa mi javi moze li ovako:

Code:

fajl1.jednaki = {'n', 'e', 's', 't', 'o'};


[ Buffy @ 12.05.2005. 17:56 ] @
Nemoze to tako!!!
Potrebno je da svaki bajt stringa posebno kopiras u znakovni niz.
Evo primjera te funkcije:
Code:

void kopiraj(char *rec1,char *rec2,int duzina_rijeci_dva)
{
    int i;
    for (i=0;i<=duzina_rijeci_dva;++i)
        rec1[i]=rec2[i];
    rec1[i]='\0';
}


Takodje ove funkcije imas u standardnoj c biblioteci u "string.h"
To su funkcije: strncpy() i strcpy() (slicne su).
Pozdrav!
[ X Files @ 12.05.2005. 18:09 ] @
Probao sam ovo u Borland C++ Builderu:

fajl1.jednaki = {'n', 'e', 's', 't', 'o'};

... i nece. Moze li neko to da proveri u MSVC++ kompajleru, na primer ovako:

Code:

// Siguran sam da je ovo nekada moglo u Aztec C /Amiga 500 ?!
char tekst[10];
tekst = { '1', '2', '3', '4' };

[ NastyBoy @ 12.05.2005. 18:57 ] @
To moze samo pri inicijalizaciji znakovnog niza, ne i pri kasnijoj dodeli
[ pajac @ 12.05.2005. 19:35 ] @
Najpre da kazem, da mi je od početka trebo pointer u strukturi, tako da to radi @X Files.
U bistvu mi je trebala ta funkcijonalnost, za usporedu 2 datoteke. Trebam da ispisem različite redove, pa sam rekao kad sam več tu, zašto ne bi bacio to u tabelu struktur i pored zapamtio i iste redove.Pa bi mogao izpisat željene.
Mozda dobijem koju tocku vise kod zadače! ;)

Citat:

Treba otprilike ovako (netestirano):
Citat:

Code:
strcpy( fajl1.jednaki, "nesto" );
strcpy( fajl1.razlicni, "i jos nesto" );


ali moze u jednoj liniji pri deklaraciji:
Citat:

Code:
char *text = "neki tekst";



Ja inače imam zadatak skoro rešen, problem je bio samo taj mehanizam...
Gornja koda radi tako, da nema vise problema,hvala.
[ D3adly @ 13.05.2005. 10:13 ] @
Možeš i ispisati u string sa sprintf naredbom:


Code:

sprintf (fajl1.jednaki,"nesto");
sprintf (fajl1.razlicni,"jos nesto");