Restul octetilor , de la 8 la 255 au un continut neprecizat . De altfel , nici nu ne intereseaza continutul lor . Observati faptul ca afisarea s-a realizat , in ansamblu , prin precizarea numelui .
Intrucat o variabila de tip string memoreaza cuvintele sub forma de vector de caractere , exista posibilitatea sa accesam direct continutul unui octet , asa cum suntem obisnuiti . Astfel , t[1] retine codul caracterului I , t[2] retine codul caracterului e s.a.m.d. Programul care urmeaza afiseaza acelasi cuvant , pe litere .
program st2;
var t : string;
i : integer;
begin
t := ' iepuras ';
for i :=1to n do
write (t[i]);
end .
Mai mult , putem modifica continutul unui singur octet , asa cum rezulta din programul urmator
program st3;
var t : string ;
begin
t := ' iepuras ';
t[6] := ' i';
write(t);
end .
In loc de 'a' t [6] retine 'i'. Prin urmare , programul afisaza 'iepuras'
In cazul variabilelor de tip string exista posibilitatea ca atribuirea sa se faca direct , nu pe litere , asa cum rezulta din programul st4 .
program st4;
var t , z : string;
begin
t := ' iepuras ';
z := t;
write(z);
end .
In urma atribuirii , variabila z retine cuvantul '' iepuras '' si acesta este afisat .
Am vazut ca pentru o variabila de tip string se retin automat 256 de octeti , din care primul retine lungimea . In multe cazuri , acest numar este prea mare - se consuma memorie inutil . Din acest motiv exista posibilitatea ca o varianta de tip string sa fie declarata in asa fel incat sa ocupe un numar mai mic de octeti
Exemplu :
Var t : string [4] ;
Variabila t ocupa 5 octeti . Primul , cel de indice 0 , are rolul de a retine lungimea cuvantului memorat . In acest caz variabila poate retine cuvinte ce au cel mult 4 de caractere . Programl st5 afiseaza ' mama '
programul st5 ;
var t : string [4] ;
begin
t := ' mama ';
write (t);
end .
In concluzie , prin utilizarea variabilelor de tip string avem avantajul ca putem adresa sirul de caractere atat in ansamblu , prin utilizarea numelui variabilei , cat si pe caractere prin utilizarea parantezelor drepte .
Operatorii folositi la compararea sirurilor de caractere sunt :
Operatorul ,,='' testeaza daca doua siruri de caractere sunt egale din punct de vedere al ordinii alfabetice .
Exemplu : S1 = ' abc '
=> S1=S2
S2 = ' abc '
Operatorul ,,+'' are rolul de concatenare (lipire) a doua siruri de caractere.
Concatenarea este operatia prin care din doua siruri de caractere se obtine un al treilea sir de caractere .
Exemplu : S1 = ' MIRA '
S2 = ' BELA '
S1+S2 = ' MIRABELA '
Observatie !
Concatenarea sirurilor nu este comutativa , adica S1+S2 nu este tot una cu S2+S1 .
Exemplu : S1 = ' MIRA '
S2 = ' BELA '
S1+S2 = ' MIRABELA ' (corect)
S2+S1 = ' BELAMIRA ' (incorect)
Operatorii "<" , ">" , "<=" , ">=" .
Comparatia se realizeaza din punct de vedere lexicografic (ordinea alfabetica) .
Exemplu : S1 = ' MINI '
S2 = ' MARTIE '
M=M
=> MINI > MARTIE
I>A
S1 = ' IUNIE '
S2 = ' MARTIE '
I
FUNCTIILE SI PROCEDURILE UTILIZATE DE TIPUL STRING
Functia Copy
Sintaxa functiei Copy
Copy (
, , ) ;
Copiaza din sirul dat incepand cu pozitia data de variabila pozitie un sir format dintr-un numar de caractere dat de variabila numarului .