8
08/15/22 1 Znakovni nizovi u jeziku c Jezik C nema ugrađen znakovni niz podataka . Umesto toga, jezik C sledove znakova koji se završavaju nultim znakom (NULL) tretira kao znakovne nizove. Znakovni nizovi mogu se napraviti deklarisanjem niza znakova i dodeljivanjem vrednosti njegovim elementima . Završni znak mora biti nulti znak, koji se prikazuje kao znakovna konstanta sa vrednošću ‘\0‘. Bez ovog znaka imate običan niz znakova.

Op 11 17

Embed Size (px)

DESCRIPTION

Za razliku od znaka, koji nastaje i mimo čovekove volje, svaki simbol je uvek ljudska tvorevina. Već je rečeno da se univerzum otkriva kroz nepregledno mnoštvo znakova u kojima čovek pronalazi određena značenja. Samo se po sebi razume da čulima, kojima ostvaruje prvi kontakt i upija znak iz okruženja, čovek ne može dosegnuti značenje znaka. U proces poimanja znaka uključuju se, gotovo trenutno posle čulne percepcije, razum i emocije. To je trenutak u procesu preobražaja znaka u simbol.Sliku sveta, u prostorno vremenskom beskraju, čovek sagledava i stiče mnoštvom znakova ili signala. • Znak se, budući da ukazuje na nešto, uvek ispoljava kroz jedinstvo dva svoja strukturna elementa - oznaku i označeno. Najčešće su oznaka i označeno posebni entiteti: • Slovo A je oznaka za glas A • Ime označava ličnost • Suza u oku radost ili tugu Za razliku od znaka, koji nastaje i mimo čovekove volje, svaki simbol je uvek ljudska tvorevina. Već je rečeno da se univerzum otkriva kroz nepregledno mnoštvo znakova u kojima čovek pronalazi određena značenja. Samo se po sebi razume da čulima, kojima ostvaruje prvi kontakt i upija znak iz okruženja, čovek ne može dosegnuti značenje znaka. U proces poimanja znaka uključuju se, gotovo trenutno posle čulne percepcije, razum i emocije. To je trenutak u procesu preobražaja znaka u simbol.

Citation preview

Page 1: Op 11 17

04/10/23 1

Znakovni nizovi u jeziku c

• Jezik C nema ugrađen znakovni niz podataka . • Umesto toga, jezik C sledove znakova koji se završavaju nultim

znakom (NULL) tretira kao znakovne nizove. • Znakovni nizovi mogu se napraviti deklarisanjem niza znakova i

dodeljivanjem vrednosti njegovim elementima . • Završni znak mora biti nulti znak, koji se prikazuje kao znakovna

konstanta sa vrednošću ‘\0‘. Bez ovog znaka imate običan niz znakova.

Page 2: Op 11 17

04/10/23 2

( Malo podsećanja)

• main()• {• char c = ‘A‘;• printf(“/ %c / %d / %o / %x \n”,c,c.c,c);• }• Izvrsavanjem programa dobija se:• /A/65//101/41• 65- ASCII dekadna vrednost• 101- ASCII oktalna vrednost • 41- ASCII heksadekadna vrednost

Page 3: Op 11 17

04/10/23 3

A sad da sumiramo malo

• Znači izraz ‘A‘ je znakovna konstanta

• a, ”A” je prikriven, skraćeni, prikaz konstantnog znakovnog niza sastavljenog iz dve znakovne konstante ‘A‘ i ‘\0‘ .

Page 4: Op 11 17

04/10/23 4

Inicijalizacija znakovnih nizova

• Rekli smo već da je nizovima je u C jeziku moguće dodeljivati početne vrednosti. Ako se inicijalizacija ne zadaje eksplicitno niz se inicijalizuje nulom, Međutim ako je potrebno da se niz inicijalizuje vrednostima različitim od nule potrebno je da se pri deklaraciji niza izmedju vitičastih zagrada navedu željene vrednosti razdvijene zarezom

Page 5: Op 11 17

04/10/23 5

Inicijalizacija znakovnih nizova

• Nizovi se mogu inicijalizovati korišćenjem string konstanti. Na promer, operator

• static char tekst [ ]={• ’F’,’e’,’s’,’t’,’i’,’n’,’a’,’t’,’a’,’m’, ’s’.’e’,’m’,’e’,’n’,’t’,’e’,’m’,’

s’,’a’,’e’,’p’,’e’, ‘d’,’e’,’c’,’i’,’p’,’e’,’r’,’e’,’, ‘s’,’e’,’r’,’o’,’t’,’i’,’n’,’a’,’m’,’s’,’e’,’m’,’p’,’e’,’r’,’\0’

• }; • inicijalizuje statički niz tekst datom string konstantom

ili skraćeni oblik inicijalizacije izgleda ovako:

• static char tekst [ ]={• “Festinatam sementem saepe decipere, serotinam

semper” • };

Page 6: Op 11 17

04/10/23 6

Nizovi karaktera i pokazivači

Pošto je ime niza ekvivalentno adresi njegovog nultog elementa ( predstavlja pokazivač na nulti element) tako je i string konstanta pokazivač na nulti element niza u kome je registrovan string.

• Operator

• Static char s[ ] = “ IBM PC” ; inicijlizije statički niz s datom string konstantom On predstavlja skraćeni oblik inicijalizacije

• Static char s[ ] = {‘I’,’B’,’M’, ‘P’,’C’, ‘\0’};

• Ako bi se izostavio završni znak to više ne bi bio string već samo niz znakova.

• Kao i kod drugih nizova ime s predstavlja pokazivač na nulti element.

• s =& s[0], *s = ‘I ’, *(s +1) = s[1] = ‘B ’,

Page 7: Op 11 17

04/10/23 7

Nizovi karaktera i pokazivači

• Za kreiranje stringa može se koristiti i pokazivač Na primer deklaracijom

• Char *pok = “Festinatam sementem saepe decipere, serotinam semper” ;

• pokazivač pok je inicijalizovan adresom nultog znaka stringa • Ekvivalentna inicijalizacija se može realizovati sledećim operatorima • Char *pok;• pok = “Festinatam sementem saepe decipere, serotinam semper” ;• Za razne operacije nad ovim stringom dovoljno je da znamo adresu

njegovog nultog znaka

Page 8: Op 11 17

04/10/23 8

Example N0 .... koji ispisuje string u direktnom i inverznom poretku.

• main()• {• static char s[ ]={ “Festinatam sementem saepe decipere,

serotinam semper” };• char *pok;• pok = s;• while (*pok) /*ili while (*pok!= ’\0’ ) */ • putchar (*pok++);• while (--pok >=s)• putchar (*pok);• putchar (’\n’ );• }