Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 2.514 pregleda

Najnovija ↓

C: string u strukturu 12.05.2005. u 17:58 · pre 261 mesec #1
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!!:(
Potpis
If we want to discover, we first have to be willing to get lost!
Re: C: string u strukturu 12.05.2005. u 18:47 · pre 261 mesec #2
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'};


Re: C: string u strukturu 12.05.2005. u 18:56 · pre 261 mesec #3
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!
Potpis
[email protected]
Re: C: string u strukturu 12.05.2005. u 19:09 · pre 261 mesec #4
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' };

Re: C: string u strukturu 12.05.2005. u 19:57 · pre 261 mesec #5
To moze samo pri inicijalizaciji znakovnog niza, ne i pri kasnijoj dodeli
Re: C: string u strukturu 12.05.2005. u 20:35 · pre 261 mesec #6
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.
Potpis
If we want to discover, we first have to be willing to get lost!
Re: C: string u strukturu 13.05.2005. u 11:13 · pre 261 mesec #7
Možeš i ispisati u string sa sprintf naredbom:


Code:

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

Potpis
#include <D3adly.h>
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme