String on massiiv, kus esimesel kohal on stringi pikkus (t„htede arv temas) ning massiivi j„rgmised elemendid on stringis olevad t„hed. Seega kujutub tekst Tere! tbis Tekst j„rgmiselt : koht massiivis: 0 1 2 3 4 5 kohal olev v„„rtus: 5 T e r e ! Tekstidega t””tamise hälbustamiseks on keeles Turbo Pascal defineeritud vastav tp. Stringi kirjeldamisel saab ette anda maksimaalpikkuse, milleks vaikimisi on 255 smbolit (paneme t„hele, et massiivi esimeses elemendis sisaldub stringi pikkus). Stringi saab v„„rtustada omistamislausega. Stringkonstant on apostroofidega mbritsetud smbolijada (milles sisalduv apostroof tuleb kirjutada kahekordselt). Stringi elemente (smboleid) saab kasutada nagu massiivi elemente. N„iteks programmiläik a: string[80]; a := 'Tere'; write(a[3]); v„ljastab ekraanile t„he r. Stringide puhul on m„„ratud ka värdlusoperaatorid: =, <>, <, >, <= ja >=. Värdlemist teostatakse leksikograafiliselt, s.t. stringe värreldakse smbolhaaval alates esimesest smbolist kui värdlemisel leitakse erinevad smbolid, antakse värdlemise tulemuseks nende smbolite värdlemise tulemus kui ks string on teisest pikem ja lhema stringi smbolid langevad kokku pikema stringi vastavate smbolitega, siis loetakse pikem string suuremaks kui lhem string stringid on värdsed siis ja ainult siis, kui nad on hepikkused ja smbolhaaval värdsed. Seega on täesed j„rgmist tpi avaldised: `abc' = `abc' `a1' < `aa' `Aaa' < `aaa' `Aaa' < `a' `aaa' < `aaaa' Stringitbiga t””tamiseks on keeles Turbo Pascal kirjeldatud mitmeid kasulikke funktsioone. Vaatleme mäningaid neist l„hemalt. function Length(S: String): Integer; Funktsiooni Length v„„rtuseks on stringi S k„esolev pikkus (mitte maksimaalpikkus). N„ide: var S: String; begin Readln (S); Writeln('"', S, '"'); Writeln('length = ', Length(S)); end. function Concat(s1 [, s2,..., sn]: String): String; Funktsiooni Concat v„„rtuseks on string, mis on saadud käigi parameetrite s1, s2, ... sn konkatenatsiooniga. Tulemusstringi väetakse limalt 255 smbolit. Sama tulemuse saab muide ka stringidele liitmistehet rakendades, seega on kaks j„rgnevat avaldist samav„„rsed : Concat(s1, s2, s3) s1+s2+s3 N„ide: var S: String; begin S := Concat('ABC', 'DEF'); { 'ABCDE' } end. procedure Delete(var S: String; Index: Integer; Count:Integer); Protseduur Delete kustutab Count smbolit stringist S alates smbolist indeksiga Index. Kui Index on suurem kui stringi S pikkus, siis ei kustutata htegi smbolit. Kui Index+Count-1 on suurem kui stringi S pikkus, siis kustutatakse stringi S läpus olevad smbolid alates positsioonist Index. N„ide: var s: string; begin s := 'Honest Abe Lincoln'; Delete(s,8,4); Writeln(s); { 'Honest Lincoln' } end. function Copy(S: String; Index: Integer; Count: Integer): Funktsiooni Copy v„„rtuseks on string pikkusega Count smbolit alates positsioonist Index stringis S. Kui Index on suurem kui stringi pikkus, on tulemuseks thi string. Kui Index+Count-1 on suurem stringi pikkusest, on funktsiooni v„„rtuseks string, mis sisaldab käiki stringi S smboleid alates positsioonist Index. N„ide: var S: String; begin S := 'ABCDEF'; S := Copy(S, 2, 3); { 'BCD' } end. procedure Insert(Source: String; var S: String; Index: Integer); Protseduur Insert lisab stringi Source stringi S alates positsioonist Index. Tulemusstringi ei väeta le 255 smboli. N„ide: var S: String; begin S := 'Honest Lincoln'; Insert('Abe ', S, 8); { 'Honest Abe Lincoln' } end. function Pos(Substr: String; S: String): Byte; Funktsioon Pos otsib alamstringi Substr stringist S. Kui alamstringi ei leidu stringis S, siis saab funktsiooni v„„rtuseks 0, vastasel korral t„isarv, mis n„itab, milliselt positsioonilt algab (esimene) alamstring stringis S. N„ide: var S: String; begin S := ' 123.5'; { thikud asendatakse nullidega } while Pos(' ', S) > 0 do S[Pos(' ', S)] := '0'; end. procedure Val(S; var V; var Code: Integer); S string, milles olev smbolite jada moodustab (m„rgiga) arvu V t„isarvu väi reaalarvu tpi muutuja Protseduur Val teisendab stringi S arvuks, mis omistatakse muutujale V. Kui teisendamine ännestus, antakse muutuja Code v„„rtuseks 0, vastasel korral selle smboli indeks, mille teisendamisel tekkis viga. N„ide: var I, Code: Integer; begin { string saadakse programmi k„surealt } Val(ParamStr(1), I, Code); if Code <> 0 then { Viga teisendamisel } Writeln('Viga tekkis teisendusel positsioonis: ', Code) else Writeln('Value = ', I); Readln; end. procedure Str(X[: Width[: Decimals]]; var S:string); Protseduur Str teisendab arvu X stringiks S samade reeglite j„rgi nagu ekraanile v„ljastamisel protseduuri write abil. N„ide: { Teisendab t„isarvu stringiks } function IntToStr(I: Longint): String; var S: string[11]; begin Str(I, S); IntToStr := S; end; begin Writeln(IntToStr(-5322)); Readln; end.