Работа со STRING - ови

 

    Стринговите се секвeнца на карактери кои можат да бидат броеви, букви, специјални карактери, space или комбинација на сите претходно наведени.

    Можат да бидат декларирани како  

  • Низа од карактери со array
  • String променливи

    Пример

    Следниот пример за различни декларации на стрингови.

    program proba;

    var

           s: string;

           s1,s2: string[10];

    begin

           s := ' Moeto ';

           s1:=' ime e ';

           writeln('Vnesete go vaseto ime');

           readln(s2);

           writeln(s, s1, s2);

    end.

 

  

Функции и процедури за работа со String

 

1.    Функција  Lеngth за дефинирање на должина  на  стринг

Dolzina:=Length(ispituvan_string);

Dolzina цел број – Број на карактери во стрингот што го испитуваме.

Пример

s:='abc';
x:=length(s); {x ќе биде 3}
s:='';
x:=length(s); {x ќе биде 0}

 

2.    Функција за собирање на стрингови Concat

Rez_string:= Concat(s1,s2,s3,...,sn);

s1,s2,s3, …,sn - стрингови кои ќе се соберат (додадат) еден до друг и ќе биде оформен резултантниот стринг Rez_string.

Пример

Var 
             S1, S2 : String;
 
Begin
             S1 := 'Zdravo! ';
             S2 := ' Kako si?';
             Write(Concat(S1, S2));         { Отпечатен резултат е : Zdravo! Kako si?' }
End.


            Спојувањето на стрингови може и да се изведе со +

Пример

Var 
             S1,S2,S : String;
 
Begin
             S1 := 'Zdravo! ';
             S2 := ' Kako si?';
             S:=S1+S2;
             Write(S);                             { Отпечатен резултат е : Zdravo! Kako si?' }
End.
 

    3. Функција  Copy за вадење дел од стрингот

    Rez_string:=copy(poceten_string,pozicija,kolkukarakteri);

Pozicija цел број - од кој карактер да почне со вадење на карактери

Kolkukarakteri цел број – колку карактери да издвои и да смести во променливата  rez_string

Пример

program primer;

uses crt;

Var

          S : String;

Begin

        clrscr;

          S := 'Zdravo. Kako si?';

          S := Copy(S, 9, 8);            { Rezultatot e  'Kako si?' }

          Write(S);

End.

 

    4.Функција  Pos за дефинирање на позиција на еден стринг во друг  стринг

   Pozicija:=pos(baran_string,ispituvan_string);

Pozicija цел број – на кое место се наоѓа бараниот стринг во  стрингот што го испитуваме.

Пример

program vtor;

uses crt;

var tekst,isp:string;

    n,ps:integer;

begin

     clrscr;

     writeln('Vnesete go tekstot');

     readln(tekst);

     writeln('Vnesete go tekstot sto go barate');

     readln(isp);

     n:=length(tekst);

     ps:=pos(isp, tekst);

     if ps<>0 then

             writeln(isp,' pocnuva na ',ps,' pozicija vo ', tekst);

end.

 

    5.Процедура  Delete за бришење на  дел од стринг, од зададена позиција и колку карактери  и резултатот го сместува во истиот стринг (го менува почетниот стринг).  

   Delete(poceten_string,pozicija,kolku);

Pozicija цел број – од кое место ќе се почне со бришење

kolku цел број – колку карактери ќе избрише.

Пример

program primer;

    var tekst:string;

          dol,od,kolku:integer;

begin

     writeln('Vnesete go ispituvaniot tekst');

     readln(tekst);

     dol:=length(tekst);

     writeln('Vnesete od kade ce pocne so brisenje');

     readln(od);

     writeln('Vnesete kolku karakteri ce izbrise');

     readln(kolku);

     delete(tekst,od,kolku);

     writeln(tekst);

end.

 

    6.Процедура  Insert за вметнување на  еден стринг во друг почетен стринг  на дадена позиција и резултатот го
    сместува во почетниот стринг (го менува почетниот стринг).

 

Insert (drug, Poceten, Pozicija);

 

Pozicija цел број – на кое место ќе изврши вметнување на стрингот Drug во стрингот Poceten

 

Пример

Program test;

Var 
             S : String;
 
Begin
             S := 'Zdravo  ! Kako si ?';
             Insert(' drugare ', S, 7);
             Write(S);
  
End.
{  Резултатот ќе биде 'Zdravo drugare ! Kako si ?' }
 
 
 

    7.ФУНКЦИЈА  UpCase за конверзија на малите букви во големи

Пример

Program test;
Var 
   S : String;
   i : Integer;
 
Begin
             S := 'Zdravo! Kako si?';
             For i := 1 to length(S) do
                          S[i] := UpCase(S[i]);
             Write(S); { Резултатот ќе биде  'ZDRAVO! KAKO SI?' }
End.
 
 

    8.Процедура  VAL за конверзија  на  еден стринг во број.

 

VAL(s,promenliva,greska);

 

S – string

Promenliva -  од тип цел или децимален број

Greska  - Грешка од типот цел број

 

Оваа процедура прави конверзија на стринг S во број Promenliva а грешката во конверзијата ја сместува во променлива  Greska. Ако променливата Greska  е 0 тогаш нема грешка при конверзијата. Ако е различна од нула тогаш внесената вредност во стрингот S не може да биде број.

 

Пример

Program Primer;

 

Var I, g : Integer;

    s:string;

begin

     writeln('Vnesete broj ');

     readln(s);

     Val (s,i,g);

     If g<>0 then

         Writeln ('Greska ',g)

     else

         Writeln ('Vrednost  : ',I);

end.

 

 

    9.Процедура  STR за конверзија  на  еден број во стринг.

 

STR(promenliva,s);

 

S – string

Promenliva -  од тип цел или децимален број

 

Оваа процедура прави конверзија на број Promenliva во стринг S (со примена на форматирање на бројот, резервира места за целиот број и за децималите).

 

Пример

program primer;

Var

          S : String;

          i : Real;

 

Begin

          i := 0.563;

          Str(i:6:2, S);

          Write(S);

End.

 

СТРИНГОВИТЕ како НИЗА од карактери

 

Пример за премин од стринг во низа од цифри:

 

program nov;
uses crt;
    var S: string;
    A: array[1..100] of Integer;
    I, Len: Integer;
    begin
        clrscr;
        S := '21354561321535613';
        Len := Length(S);

        for I := 1 to Len do
        begin
            A[i] := Ord(S[I])-48; { za premin od karakter vo broj }
        end;
        for I := 1 to Len do
            writeln(a[i]);
end.
 

или вака

 

program nov;
    uses crt;
    var
        s:string;
        a:array[1..1000] of integer;
        i,g:integer;
    begin
        clrscr;
        s:='1234567';
        for i:=1 to length(s) do
            val(s[i],a[i],g);        { za premin od karakter vo broj }
        for i:=1 to length(s) do
            writeln(a[i]);

end.

 

и работата се сведува на работа со низа од карактери или низа од броеви.