1 / 17

STRINGOVI

STRINGOVI. Radili : Igor Miladinovic Marko Milankov Nikola Randjelovic. Sta je STRING ?.

cathal
Download Presentation

STRINGOVI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. STRINGOVI Radili: Igor Miladinovic Marko Milankov Nikola Randjelovic

  2. Sta je STRING ? • String je jednodimenzionalniniztipa char. Da bi se znalogde se u nizuzavršava string dopisuje mu se takozvanizavšniiliNULLznak: '\0', koji je sastavnideostringa. Radsastringovimapredstavijaspecificannacinkorišćenjanizaznakova. ”hello”

  3. String konstante Za C kompajler string konstanta je svaki niz znakova između navodnika. Znaci između navodnika plus završni znak se registruju u nizu susednih memorijskih lokacija. Zbog prisustva završnog znaka string konstanta "C“nije jednaka znakovnoj konstanti 'C', jer je "C" niz od dva znaka: 'C' i '\0'. Prazna string konstanta " " se sastoji samo od završnog znaka. • Inicijajizacija stringova: Stringovi se mogu inicijalizovati korišćenjem string konstanti. Na primer, operator static char s[]="IBMPC"; Inicijalizuje statički niz s datom string konstantom.. Ovaj način inicijalizacije predstavlja skraćeni oblik inicijalizacije niza 1 static char s[]={I,'B' :M',' ','P' ,'C' ,'\O'}; Ako bi se u inicijalizaciji 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 niza, tako da važi: 1 s=&s[0],*s='I', i *(s+1)=s[1]='B'

  4. Učitavanje stringova Priučitavanjustringovatrebavoditiračuna o dvestvari: kakorezervisatimemorijuzačuvanjestringa i kakoprimenitifunkcijuzaučitavanjestringa. Na početkuradapotrebno je odreditimaksimalnudužinustringakojiće se učitavati da bi kompajlerdodeliotraženimemorijskiprestor.  Učitavanje se možerealizovatipomoćudvebibliotečnefunkcijescanf () i gets ().

  5. Primer ucitavanjastringa main() { char imel[50],ime2[60]; intbrojac,god; printf(Unesiteimeiprezime.\n”);   brojac=scanf("%s%5s”,ime1,ime2); printf("Ucitanasu %d podatka: %s %s .\n" ,brojac,ime1,ime2); }

  6. Ispisstringova Zaispisstringova se koristedvebibliotečkefunkcije puts() i printf(). Funkcija puts() ispisujesamostringove, a printf() možeispisivatimešovitepodatke. Dok se priispisustringasa puts() automatskiprelazinanovulinijuprikorišćenjuprintf() to se moranaznačitisa '\n'. Ova funkcijaimasamojedan argument - pokazivačnapočetnutačkustringa (ill podstringa) kojitrebaispisati. Ova fuinkcijaispisujesveznakepočev od tačkenakojupokazuje argumentfunkcije do završinogznaka ('\0') kogazamenjujeznakomza "novuliniju" tako da se posleispisastringaprelazinanovuliniju. Zaglavljefunkcije puts() imasledećioblik: int puts(char *string);

  7. Primer stringovaNapisati program kojiispisuje string, u direktnomiinverznomporedku. #include <stdio.h> void main() {   char s[]="IBMPC-486"; ......1 char *pok; .................2 pok=s;......................3   while (*pok) putchar(*pok++ );...........4   putchar('\n'); while (--pok>=s) putchar(*pok); .............5 putchar('\n'); .............6 getch();   }

  8. Funkcije; • strlen(s) vraćadužinusvogargumenta s, isključujućizavršniznak ’\0’ • ucitaj_rec() ucitavaodpocetkatj. do krajaprvebelineili lim-1 karakter , cuvaga ‘\0’ • squeeze(s,c) uklanjasveprimerkeznaka c izstringa s • strcat(s, t) spaja string t nakrajstringa s. Funkcijastrcat() pretpostavljada u stringu s imadovoljnomestazaovukombinaciju. • atoi()

  9. Funkcije; • reverse(s) preokreće string s u mestu . • itoa() ceo broj pretvara u nisku znakova (inverzna od atoi() ). • trim() klanja beline sa kraja s. • strindex(s, t) vraca indeks t-a u s-u, -1 ako ga nema. • atof(s) string s pretvara u njemuekvivalentanbrojsapokretnim zarezomdvostruketačnosti.

  10. strlen(s) /* strlen: vraca duzinu od s */ intstrlen(char s[]){ inti; i=0; while( s[i]!='\0' ) i++; return i; } strlen() idrugefunkcijezastringovedeklarisanesu u zaglavlju <string.h>

  11. ucitaj_rec() intucitaj_rec(char s[], intlim){ int c, i; for(i=0; i<lim-1 && (c=getchar())!=EOF) && c!='\n' && c!=' ' && c!='\t'; i++) s[i]=c; s[i]='\0'; return i; }

  12. squeeze(s, c) /* squeeze: brisesve c iz s */ void squeeze( char s[], int c){ inti, j; for(i=j=0; s[i]!='\0'; i++) if(s[i]!=c) s[j++]=s[i]; s[j]='\0'; }

  13. atoi() zapretvaranjestringa u njegovnumeričkiekvivalent. Ulazni string možedasadrživodećiprazanprostoriopcioniznak koraci: •preskočitiprazanprostor, akopostoji •pročitatiznakbroja, akopostoji •pročitaticelobrojnideoipretvoritiga

  14. reverse(s) #include<string.h> /* reverse: obrce string s u mestu */ void reverse(char s[]) { int c, i, j; for( i= 0, j=strlen(s)-1; i<j; i++,j--) { c=s[i]; s[i]=s[j]; s[j]=c } }

  15. I…..ZA…..Kraj…..:

  16. KRAJ STRANICE : • http://book.tsp.edu.rs/mod/page/view.php?id=763 • http://poincare.matf.bg.ac.rs/~marija/p1/Programski%20jezik%20C%20Stringovi.pdf

  17. Pesma:

More Related