Subsiruri, Exemple Functii



Subsiruri:


Fiind dat un sir de caractere ,prin subsir al sau se intelege un sir de caractere consecutive care se regasesc in sirul initial.

EXEMPLU

Sirul 'harnic' are ca subsir al sau 'rni' .Acesta incepe in pozitia a 3 din sirul initial (3caractere).



Exista mai multe proceduri si functii care actioneaza asupra sirurilor de caractere .Aceste sunt prezentate mai jos.


Functia copy are rolul de a extrage un subsir din cadrul unui sir dat.


Function copy(s:string;inceput,lungime:integer):string;


*- variabila s ,de tip string ,contine sirul din care se face extragerea;

*- inceput -retine pozitia de inceput a subsirului care se extrage;

*- lungime- retine numarul de caractere care se extrag.



PROGRAM s1

Var a,b:string

i, j:byte;

Begin

Write('a=');readln(a);

Write('i:=');readln(i);

Write('j=');readln(j);

B:=copy(a ,I , j);

Writeln(b);

End.


Functia pos are rolul de a verifica daca un sir este subsir pentru altul.


Function pos(subsir,sir:string) :byte;


Programul urmator citeste 2 siruri a si b si verifica daca b este  subsir al lui a.

In ambele cazuri se dau mesaje.


Program s2;

Var a, b :string;

N:integer;

Begin

Write('a=');readln(a);

Write('b=');readln(b);

n:=pos(b,a);

if n=0

then writeln('b nu este subsir al lui a')

else writeln('b este subsir al lui a si incepe in pozitia',n);

end


Procedura insert are rolul de a insera un sir de caractere incepind cu o anumita pozitie,inalt sir.

Procedure insert (sir_de_ins: string; var sir_unde_ins:string; poz: integer);

sir_de_ins -sirulcare urmeaza a fi inserat;

sir_unde_ins - sirul in care se face inserarea;

poz - pozitia din care se face inserarea.


Program s3;

Var a, b :string;

Begin

Write('a=');readln(a);

Write('b=');readln(b);

Insert(b, a, 3);

Writeln(a);

End.


Procedura delete are rolul de a sterge un subsir  din cadrul unui sir dat.


Procedure delete(var sir:string; indice ,nr_car: integer);


Programul urmator citeste un sir de caractere intr-o variabila de tip string  ,numita a.


Program s4;

Var a:string;

Begin

Write('a=');readln(a);

Delete(a, 3, 2);

End.