Tipul de date String
STRING reprezinta un tip de variabila care reprezinta o succesiune de maxim 255 caractere din tabelul ASCII. (Litere de la A la Z; cifre; simboluri si spatii)
Tabelul ASCII
(partea principala)
Operatori şi funcţii asupra şirurilor de caractere
1. Operatorul + se utilizează pentru concatenarea (unirea) cîtorva şiruri.
Exemplu:
'Fat-' + 'Frumos' -> 'Fat-Frumos'.
2. Operatorii =, >, <, >, <, o se utilizează pentru compararea şirurilor. Ei au un ordin de prioritate mai mic decît operatorul +. Se compară simbolurile de pe aceleaşi poziţii, începînd cu poziţia 1, pînă cînd aceste simboluri sînt diferite. Va fi mai mare acel şir, al cărui simbol respectiv este mai mare.
Dacă două şiruri au lungimi diferite şi unul este subşir al celuilalt, atunci şirul mai lung va fi considerat mai mare.
Exemple:
'Mihai' < 'vlad', deoarece ord('M')<ord('v')
'Lene'< 'loc', deoarece ord('L')<ord('l')
'Caucaz'< 'Caucaz ', deoarece al doilea şir are lungimea mai mare.
1. Funcţia Length(s) returnează lungimea (de tip integer) a şirului s.
Exemplu:
'Piscina' Length(s) -> 7
'Merg la bunici!' Length(s) -> 15
2. Funcţia Copy(s,p, n) returnează din şirul s un subşir de lungime n începînd cu poziţia p.
Exemplu:
'Venezuela' Copy(s,7,2) ' -> 'el'
'Miorlait' Copy(s,5,2) -> 'la'
3. Funcţia Concat(Sj/ s2, . . ., sn) returnează şirul sx + s2+ . . . +sn .
Exemplu:
s1:='Mir
s2:='ela'
Concat(s1,s2) -> 'Mirela'
4. Funcţia Pos(sub, s) returnează 0, dacă şirul sub nu este subşir al lui s, sau poziţia (de tip integer) din care prima dată subşirul sub apare în s.
Exemple:
'Anotimp' Pos('timp',s) -> 4
'Pantaloni' Pos('Ras',s) -> 0
1. Procedura Delete(s,p, n) şterge n simboluri din şirul s începînd cu poziţia p.
Exemple:
'Ursula' Delete(s,4,3) -> 'Urs'
'Buruiene' Delete(s,3,4) ->'Bune'
2. Procedura Insert(sub, s,p) inserează subşirul sub în şirul s începînd cu poziţia p.
Exemplu:
'bani' Insert('Co', s, 1) -> 'Cobani'
3. Procedura Str(x, s) transformă numărul x (de tip integer sau real) în şir, atribuindu-1 lui s.
Exemplu:
3456 -> ’3456’.
4. Procedura Val(sir, numar, eroare) incearca sa transforme sirul de caractere “sir” intr-un numar real. Daca reuseste atunci parametrul eroare va avea valoarea 0, daca nu reuseste valoarea parametrului “numar”=0, “eroare” va avea pozitia de unde incepe nereusita.
Exemple:
Val(‘213.8’, numar, eroare) -> eroare=0
-> numar=213.8
Val(’19,5’,numar,eroare) -> eroare=3
-> numar=0.



Exemplu Program:
Program ce afiseaza de cate ori se intalneste cuvantul "avion" intr-un text introdus de la tastatura.
Program Text; {Text - numele programului}
uses crt; {Directiva ce permite utilizarea bibliotecii CRT, adica pot fi executate astfel de functii, precum: curatarea ecranului dupa executare, adaugarea culorilor, sunetelor in program etc.}
var s: string; {Declaram variabila s de tip string - sir de caractere}
i, nr: integer; {Declaram variabilele nr, i de tip integer - numere intregi}
begin {Inceputul programului}
clrscr; {Comanda ce va curata automat ecranul dupa executie}
textcolor(2); {Coloreaza textul programului in culoarea cu nr. 2 - green}
textbackground(7); {Coloreaza fundalul programului in culoarea cu nr. 7 - lightgray}
nr:=0; {Ii atribuim variabilei nr, care va calcula numarul aparitiilor cuvantului "avion" in text, valoarea initiala 0}
writeln('Introdu textul: '); {Afiseaza pe ecran "Introdu textul: ", trece in rand nou}
readln(s); {Citeste textul introdus de la tastatura, trece in rand nou}
for i:=1 to length(s) do {Parcurge textul de la primul caracter pana la ultimul si efectueaza urmatoarele sarcini}
if copy(s,i,5)='avion' then { Daca exista un sir de 5 caractere care formeaza cuvantul "avion"}
inc(nr); {Adaugam la valoarea lui nr 1}
writeln('Cuvantul "avion" a fost gasit de ',nr,' ori in text'); {Afiseaza pe ecran "Cuvantul "avion" a fost gasit de ", afiseaza valoarea lui nr, afiseaza " ori in text", trece in rand nou}
writeln('Autor: Mirela Burduja'); {Se afiseaza pe ecran fraza: " Autor: Mirela Burduja", trece in rand nou
readkey; {la apasarea unei taste, trece din ecranul negru in ecranul albastru}
end. {Sfarsitul programului}


Screenshot-uri:

Diagrama de sintaxa:
