Znakov reazce Lazarus o je znakov reazec Znakov

  • Slides: 10
Download presentation
Znakové reťazce Lazarus

Znakové reťazce Lazarus

Čo je znakový reťazec? Znakový reťazec je údajový typ, ktorý obsahuje nejakú postupnosť znakov

Čo je znakový reťazec? Znakový reťazec je údajový typ, ktorý obsahuje nejakú postupnosť znakov (Char). Je to vlastne postupnosť znakových premenných, s ktorými môžeme pracovať ako s celkom Dĺžku reťazca zistíme pomocou štandardnej funkcie Length.

Ako deklarujeme reťazcovú premennú? Premennú typu znakový reťazec deklarujeme takto: var meno: string; Reťazcové

Ako deklarujeme reťazcovú premennú? Premennú typu znakový reťazec deklarujeme takto: var meno: string; Reťazcové konštanty sú uzavreté rovnako znakové konštanty v apostrofoch. Premenná typu string môže obsahovať aj prázdny reťazec: meno: = ''; vtedy je jej dĺžka 0.

Ako priradiť reťazcovej premennej hodnotu? Priradiť jej reťazcovú konštantu, napr. meno: =´Jano´; má dĺžku

Ako priradiť reťazcovej premennej hodnotu? Priradiť jej reťazcovú konštantu, napr. meno: =´Jano´; má dĺžku 4 meno: =´´; - prázdny reťazec má dĺžku 0 Priradiť jej hodnotu zadanú v editovacom políčku, napr. meno: =Edit 1. Text; Priradiť jej hodnotu inej reťazcovej premennej, napr. meno: =retazec;

Ako pristupovať k jednotlivým znakom reťazca? Znaky v znakovom reťazci sú očíslované od 1

Ako pristupovať k jednotlivým znakom reťazca? Znaky v znakovom reťazci sú očíslované od 1 až po momentálnu dĺžku reťazca. S jednotlivými znakmi reťazca môžeme pracovať ako s prvkami postupnosti ak meno: = ´Jano´; tak meno[1] =´J´, meno[2] =´a´, meno[3] = ´n´, meno[4] = ´o´, tiež meno[Length(meno)] = ´o´, lebo Lenhth(meno)=4 Nesmieme sa pritom odvolávať na znaky mimo rozsahu 1 až momentálna dĺžka reťazca, čiže Length(meno)

Porovnávanie reťazcov Znakové reťazce môžeme porovnávať pomocou relačných operácií (=, <>, <, >, <=,

Porovnávanie reťazcov Znakové reťazce môžeme porovnávať pomocou relačných operácií (=, <>, <, >, <=, >=). Reťazce sú usporiadané pomocou tzv. lexikografického usporiadania. Napr. platí 'abc' > 'ABC´, 'Adam' < 'Eva´, 'jana' < 'jano‚ Postupne sa pri tom porovnáva znak za znakom: kým sú v oboch reťazcoch rovnaké znaky, pokračuje sa v porovnávaní;

 keď sa narazí na rozdielne znaky, tak sa tieto dva porovnajú navzájom a

keď sa narazí na rozdielne znaky, tak sa tieto dva porovnajú navzájom a podľa toho sa nastaví celkový výsledok porovnania. Porovnávanie dvoch znakov sa robí podľa pravidiel Char: t. j. menší je ten znak, ktorý má menší ASCII-kód.

Procedúry a funkcie na prácu so znakovými reťazcami Operácia '+' slúži na zreťazenie reťazcov

Procedúry a funkcie na prácu so znakovými reťazcami Operácia '+' slúži na zreťazenie reťazcov Retazec : = 'abc'+'def'; Retazec=´abcdef´ Text. Out(x, y, text); Int. To. Str(číslo) Str. To. Int(text) Length(text) vypíše text do grafickej plochy konvertuje celé číslo na reťazec konvertuje text na číslo vráti dĺžku reťazca

 Copy(reťazec, od, koľko) ◦ táto funkcia vráti nový reťazec, ktorý je podreťazcom pôvodného

Copy(reťazec, od, koľko) ◦ táto funkcia vráti nový reťazec, ktorý je podreťazcom pôvodného ◦ z pôvodného reťazca sa zoberú znaky počínajúc od hodnoty od a zoberie sa maximálne koľko znakov ◦ Napr. Retazec : = Copy('abcde', 2, 3); potom Retazec='bcd´ Pos(podreťazec, reťazec) ◦ táto funkcia vráti začiatočný index prvého výskytu podreťazca v danom reťazci alebo 0, ak sa v reťazci podreťazec nenachádza, napr. I : = Pos('d', 'abcde'); vráti I=4

 Delete(reťazec, od, koľko) ◦ Procedúra z daného reťazca vyhodí podreťazec od príslušného indexu

Delete(reťazec, od, koľko) ◦ Procedúra z daného reťazca vyhodí podreťazec od príslušného indexu danej dĺžky, napr. ◦ Delete(´abrakadabra´, 4, 6); ponechá v reťazci text ´abrra´ Insert(podreťazec, pozícia) ◦ Procedúra vloží podreťazec do reťazca od zadanej pozície, napr. ◦ Insert(´tema´, ´matika´, 3); vytvorí z reťazca ´matika´ reťazec ´matematika´ Upper. Case(text) vráti reťazec, v ktorom budú všetky písmená veľké Lower. Case(text) vráti reťazec, v ktorom budú všetky písmená malé