Karakterláncok Páll Boglárka
Karakterláncok Karakterlánc olyan karakterek sorozata amelyek az ASCII táblázatban találhatók. Maximális hossza rögzített, Pascalban egy karakterlánc legtöbb 255 karakter hosszú lehet Gyakorlatilag egy karakter típusú elemekből álló vektornak felel meg.
Deklaráció var s1:string; {255 karakter} s[0] ... Ábrázolás a memóriában: s[1] s[2] s[0] s[3] s[255] s[254] ... karakterek aktuális hossz megőrzése
Deklaráció var s2: string[5]; {5 karakter} s[0] Ábrázolás a memóriában: s[1] s[2] s[0] s[3] s[4] s[5] karakterek aktuális hossz megőrzése
Tulajdonságok A Pascal nyelv a karakterláncokat automatikusan képes kiírni, beolvasni, értéket adni (:=) és összevonni (+) var csnev:string[15]; knev:string[10]; nev:string; ... csnev:=‘Kiss’; knev:=‘Andras’; nev:= csnev + knev; {KissAndras} nev[5]:= ‘+’; {Kiss+ndras}
Relációs műveletek karakterláncokon A karakterláncokat összehasonlíthatjuk a relációs operátorok segítségével (=, <>, <, >, <=, >=) Relációs kifejezés Eredmény ‘A’ > ‘B’ False ‘jan’ > ‘Jan’ True ‘2599’ < ‘270’ ‘Alma’ = ‘Alma’ ‘Korte’ <> ‘KORTE’ ‘B’#66‘B’ = ‘BBB’
Karakterlánc kezelő függvények Length(karlánc) visszaadja a karakterlánc hosszát var s: string; h:byte; ... s:=‘Pascal’; h:=length(s); {h=6}
Karakterlánc kezelő függvények Copy(karlánc,poz,hossz) visszaadja a karakterlánc egy részláncát a poz pozíciótól kezdve, amelynek a hosszúsága hossz. var s1,s2: string[20]; ... s1:=‘Pascal’; s2:= copy(s1,3,4) {s2=‘scal’} s2:= copy(s1,7,2) {s2=‘’}
Karakterlánc kezelő függvények Concat(karlánc1,...,karláncn) Sorban összefűzi a megadott karakterláncokat var s:string; ... s:=Concat(‘Pa’,‘sca’,‘l’); {s=Pascal}
Karakterlánc kezelő függvények Pos(karlánc1,karlánc2) Megadja a karlánc1 első előfordulásának kezdőpozicióját a karalanc2-ben. (Ha nincs 0-t térít vissza) var p:byte; ... p:=pos(‘a’,‘Pascal’); {p=2}
Karakterlánc kezelő függvények Delete(karlánc,poz,hossz) Kitöröl a karakterláncból a poz pozíciótól kezdődően hossz darab karaktert. var s: string[20]; ... s:=‘Pascal’; Delete(s,2,4) {s2=‘Pl’}
Karakterlánc kezelő függvények Insert(karlánc1,karlánc1,poz) Beszúrja a karlánc1 karakterláncot a poz pozíciótól kezdődően a karlánc2-be. var s: string[10]; ... s:=‘Paal’; Insert(‘sc’,s,3) {s2=‘Pascal’}
Egyszerűbben Length(karlánc) Concat(karlánc1,...,karláncn) Copy(miből,honnan,hányat) Delete(miből,honnan,hányat) Pos(mit,miben) Insert(mit,miben,honnan)
Számok karakterláncá alakítása str(szám, karakterlánc) a számot karakterlánccá alakítja a szám lehet egész vagy valós paraméter Pl: var n:real; s:string; ... n:=3; str(n,s)?; {s= ‘3’}
Karakterláncok számmá alakítása val(karakterlánc, szám, kód) a karakterláncot számmá alakítja a kód paraméter jelzi, hogy sikerült-e az átalakítás a kód kötelezően integer ha az átalakítás sikereses volt akkor a kód értéke 0.
Példa: var s: string[10]; n, kod: integer; ... s:= ‘100’; val(s,n,kod); {n=100, kod=0} if kod<> 0 then write(‘az atalakitas sikertelen!’)
Példa: var s: string[10]; n, kod: integer; ... s:= ’10x0’; val(s,n,kod); {n=0, kod=3} if kod<>0 then write(‘az atalakitas sikertelen!’)
Egyéb függvények: ord(x) – az x karakternek megfelelő ASCII kódot Pl: i:=ord(‘a’); i=97; chr(x) – az x ASCII kódnak megfelelő karaktert Pl: c:=chr(97); c=‘a’;