Sztringkezelő függvények A string típusú változók kezelése, használata és szerepük a feldolgozás során
Mi string? Röviden: karakterek tárolására alkalmas típus A karakterek betűk, számok, vagy tetszőleges, a billentyűzetről (vagy máshonnan) bevihető jeleket jelentenek. Egyes esetekben speciális jelentés tulajdonítható nekik Pascal esetén a stringek hossza maximálisan 255 karakter
Hogyan ábrázoljuk? Lényegtelen, de hasznos string[10] #6 P a s c a l???? A sztring hossza Egyéb, ismeretlen karakterek
Milyen függvények vannak? Chr szám->karakter UpCase nagybetűvé alakítás Concat összefűzés Copy részsztring másolása Delete törlés Insert beszúrás sztringbe Length sztring hossza Pos pozíció keresése Str szám->sztring Val sztring->szám
char CHR(int) A paraméterként megadott egész számnak megfelelő karaktert adja vissza program chr_pelda; var s:string[20]; begin s:= Ok + chr(33); writeln(s); end.
int LENGTH(string) A paraméterként megadott sztring hosszát adja vissza. Alternatíva: ord(s[0]); program length_pelda; var s : string; k : integer; begin s:= Ma az idő ; writeln( s ); k := length( s ); writeln( A string hossza:, k ); end.
char UPCASE(char) A függvény a char típusú paraméterben megadott kisbetű karaktert nagybetűvé alakítja. program upcase_pl; var s: string; i: integer; begin s:= aábcdeéfgshjkl ; writeln( sztring:, s ); for i:=1 to length(s) do s[i]:=upcase( s[i] ); writeln( Upcase után:,s ); end.
string CONCAT(string, string, ) A paraméterként megadott sztringeket fűzi össze egyetlen szöveg. Hossza max. 255 program concat_pelda; var s1, s2, s3, s4: string; begin s1:= Példa ; s2:= a concat ; s3:=concat( s1, s2, a függvény hívására. ); writeln( concat:, s3 ); s4:= Példa + a sztringek + összefűzésére. ; writeln( + művelet:, s4 ); end.
string COPY(string, int, int) Visszaadja az első paraméterben megadott sztringből kimásolt részsztringet. A másodikban paraméterben a kezdetet, a harmadikban a kimásolandó karakterek számát kell megadnunk. program copy_pelda; var s1, s2: string; begin s1:= Elemér ; writeln( Keresztnév:, s1 ); {Elemér} s2:=copy( s1, 1, 3 ); writeln( A Copy hívása után:, s2 ); {Ele} s2:=s2+ k ; writeln( Az új név:, s2 ); {Elek} end;
DELETE(string, int, int) A paraméterként megkapott szövegből törli az adott pozícióban szereplő karaktereket program delete_pelda; var s1, s2: string; begin s1:= Katóka ; writeln( Keresztnév:, s1 ); {Katóka} delete( s1, 4, 3 ); writeln( A delete hívása után:, s1 ); {Kat} s2:=concat(s1, inka ); writeln( A módosított név:, s2 ); {Katinka} end.
INSERT(string, string, int) Az első paraméterként megkapott stringet beékeli a második paraméter int pozíciójába program insert_pelda; var s1: string; begin s1:= Ma az idő. ; writeln( s1 ); insert( szép, s1, 3 ); writeln( Az insert után:, s1 ); end.
int POS(string,string) Az első paraméterben megadott string pozícióját adja vissza a második stringből program pos_pelda; var a: string[80]; begin a:= A szövegben xx karaktersorozat keresése ; writeln( Az xx pozíciója:, pos( xx, a ) ); writeln( Az YY pozíciója:, pos( YY,a) ); end.
string STR(int real, string) A paraméterként kapott int vagy real számot stringgé alakítja mezőszélesség tizedesjegyek mezőszélesség és tizedesjegyek Program str_pelda; Var i : integer; a: real; s: string[20]; Begin i:=15; str(i,s); str(i:4, s); a:=4.5; str( a, s ); a:= 0.05; writeln(s); writeln(s); writeln(s); str( a:0, s ); writeln(s); str( a:10:2, s ); writeln(s); end.
VAL(string, int real, int) A megadott stringet a második paraméterben megadott int vagy real számba konvertálja. Ha sikeres a konverzió, a harmadik paraméter érteke 0, egyébként a konverzió során a stringben az első hibás karakter pozícióját jelenti
Program val_pelda; Var s: string; x: real; j : integer; hiba: integer; begin; s:= 1.53e-2 ; val( s, x, hiba ); if hiba = 0 then writeln( s, jó szám:, x ) else writeln( s, valós szám hiba a, hiba,. pozícióban! ); s:= 1.5.3e-1 ; val( s, x, hiba ); if hiba = 0 then writeln( s, jó szám:, x ) else writeln( s, valós szám hiba a, hiba,. pozícióban! ); s:= 102 ; val( s, j, hiba ); if hiba = 0 then writeln( s, jó szám:, j ) else writeln( s, egész szám hiba a, hiba,. pozícióban! ); s:= 10.2 ; val( s, j, hiba ); if hiba = 0 then writeln( s, jó szám:, j ) else writeln( s, egészs szám hiba a, hiba,. pozícióban! ); End.
Köszi!