Znakov reazce Lazarus o je znakov reazec Znakov
- Slides: 10
Znakové reťazce Lazarus
Č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é 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 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 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í (=, <>, <, >, <=, >=). 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 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 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 ◦ 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 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é