Łańcuchy Dane tekstowe mają - obok grafiki

Transkrypt

Łańcuchy Dane tekstowe mają - obok grafiki
Łańcuchy
Dane tekstowe mają - obok grafiki - największy udział w objętości informacji przetwarzanej i przechowywanej we współczesnych
systemach komputerowych. Z tego też względu każdy szanujący się język wysokiego poziomu jest wyposażony w mechanizmy
pozwalające na reprezentowanie, przechowywanie i przetwarzanie tekstów. W Turbo Pascalu służy do tego typ łańcuchowy
(string), przykładowa deklaracja zmiennej łańcuchowej ma postać
var
Napis : string;
Stałe łańcuchowe zapisuje się natomiast w postaci ciągów znaków ujętych w apostrofy (podobnie jak stałe znakowe):
const
STALY_NAPIS = 'Turbo Pascal';
Zerowy element łańcucha przechowuje jego aktualną długość (tzw. długość dynamiczną); będąc typu znakowego może on
przyjmować wartości od 0 do 255. Stąd właśnie wynika ograniczenie długości łańcucha do 255 znaków, co zresztą w większości
przypadków wystarcza aż nadto. Aby "skrócić" łańcuch (dana typu string zajmuje zawsze 256 bajtów, niezależnie od rzeczywistej
długości tekstu), można wykorzystać deklarację
nazwa-zmiennej : string[długość]
Możliwość ta jest szczególnie cenna, jeśli w programie wykorzystujesz np. tablicę łańcuchów: deklarując element składowy
tablicy jako string[20] oszczędzasz 235 bajtów, co przy stu elementach daje zysk ponad 20 kB. Warto zauważyć, że próba
zapisania do "skróconego" łańcucha tekstu dłuższego niż pozwala deklaracja nie spowoduje błędu, a jedynie obcięcie
nadmiarowych znaków.
Z rzeczy prostych pozostało jeszcze dodawanie łańcuchów, polegające na ich zwykłym "sklejaniu" (niestety, łańcuchów nie da się
odejmować, mnożyć ani dzielić). Jeżeli zmienna lancuch1 zawiera tekst 'Turbo', zaś lancuch2 - tekst 'Pascal', to wynikiem
sklejenia obu zmiennych:
wynik := lancuch1 + lancuch2;
będzie oczywiście tekst 'TurboPascal'.
Również odwołania do poszczególnych znaków łańcucha realizuje się w sposób elementarny. Ponieważ może on być traktowany
jako tablica znaków, instrukcja
s[5] := 'x' - wstawi znak x na piątą pozycję w łańcuchu s.
program P010;
var
S1 : String
S2 : String[15]
begin
S1:='Dowolny ciąg znaków';
S2:='Karol';
Writeln(S1);
Writeln(S2);
end.
program P011;
var S1,S2,S3 : String
begin
S1:='Turbo';
S2:='Pascal';
S3:=S1+' '+S2;
Writeln(S3);
end.