Sunteți pe pagina 1din 13

Tipuri de date

şir de caractere
(String).
Aplicaţii.
Se declară:
String
sau
String[l],
unde l255
Citirea valorii unei
variabile de tip şir de
caractere:
Var X:String;
...
ReadLn(X);
Afişarea valorii unei
variabile de tip şir de
caractere:
Var X:String;
...
WriteLn(X);
Operaţii admise asupra şirurilor de
caractere:
1. + alipirea, juxtapunerea
2. length(X) –determinarea lungimii şirului de caractere
3. insert(Subşirul,Şirul,Poziţia) -inserarea unui subşir într-un şir dat
la poziţia indicată
4. delete(Şirul, Poziţia, Nr de caractere)-lichidarea numărului de
caractere precizat din şir începînd cu poziţia indicată
5. val(Sir,Var_nr,Var_cod) –transformarea unui şir de caractere
format din cifre în valoare numerică
6. str(Var_nr,Var_Şirul) –transformarea unui număr în şir de
caractere
7. pos(Subşirul,Şirul)-verifică apartenenţa unui subşir la un şir dat
8. copy(Şirul, Poziţia, Nr_car)-copierea unui subşir dintr-un şir dat
Exemplul 1.
De la tastatură se citeşte un şir de caractere. Determinaţi numărul
semnelor de + din acest şir.

Program Ex; Uses CRT;


Var X:String; N,I:Byte;
Begin ClrScr;
Write(‘Introdu sirul de caractere:‘); ReadLn(X);
N:=0;
For I:=1 To Length(X) Do
If X[I]=‘+’ Then Inc(N);
WriteLn(‘Nr de semne=’,N); ReadKey End.
Exemplul 2.
De la tastatură se citeşte un şir de caractere. Determinaţi numărul
tripletelor ABC din acest şir.

Program Ex; Uses CRT;


Var X:String; N,I:Byte;
Begin ClrScr;
Write(‘Introdu sirul de caractere:‘); ReadLn(X);
N:=0;
For I:=1 To Length(X) Do
If (UpCase(X[I])=‘A’) And (UpCase(X[I+1])=‘B’)
And (UpCase(X[I+2])=‘C’) Then Inc(N);
WriteLn(‘Nr de triplete=’,N); ReadKey End.
Exemplul 3.
De la tastatură se citeşte un şir de caractere. Excludeţi ? din acest şir.

Program Ex; Uses CRT;


Var X:String; I:Byte;
Begin ClrScr;
Write(‘Introdu sirul de caractere:‘); ReadLn(X);
I:=1;
While I<= Length(X) Do
If X[I]=‘?’ Then Delete(X,I,1) Else Inc(I);
WriteLn(‘Sirul modificat:’,X); ReadKey End.
Exemplul 4.
De la tastatură se citeşte un şir de caractere. Excludeţi literele din acest
şir.

Program Ex; Uses CRT;


Var X:String; I:Byte;
Begin ClrScr;
Write(‘Introdu sirul de caractere:‘); ReadLn(X);
I:=1;
While I<= Length(X) Do
If UpCase(X[I]) in [‘A’..’Z’] Then Delete(X,I,1)
Else Inc(I);
WriteLn(‘Sirul modificat:’,X); ReadKey End.
Exemplul 5.
De la tastatură se citeşte un şir de caractere. Adăugaţi cifra 3 în faţa
fiecărei consoane.
Program Ex; Uses CRT;
Var X:String; I:Byte;
Begin ClrScr;
Write(‘Introdu sirul de caractere:‘); ReadLn(X);
I:=1;
While I<= Length(X) Do
If Upcase(X[I]) in [‘A’..’Z’]-[‘A’,’E’,’I’,’O’,’U’] Then
Begin Insert(‘3’,X,I); Inc(I,2) End Else Inc(I);
WriteLn(‘Sirul modificat:’,X); ReadKey End.
Exemplul 6.
De la tastatură se citeşte un şir de caractere. Adăugaţi 111 după
fiecare paranteză.
Program Ex; Uses CRT;
Var X:String; I:Byte;
Begin ClrScr;
Write(‘Introdu sirul de caractere:‘); ReadLn(X);
I:=1;
While I<= Length(X) Do
If X[I] in [‘(’,’)’,’{’,’}’,’[’,’]’] Then Begin
Insert(‘111’,X,I+1); Inc(I,4) End Else Inc(I);
WriteLn(‘Sirul modificat:’,X); ReadKey End.
Exemplul 7.
De la tastatură se citeşte un şir de caractere. Înlocuiţi semnul – prin
cuvîntul minus.
Program Ex; Uses CRT;
Var X:String; I:Byte;
Begin ClrScr;
Write(‘Introdu sirul de caractere:‘); ReadLn(X);
I:=1;
While I<= Length(X) Do
If X[I]=‘-’ Then Begin Delete(X,I,1);
Insert(‘minus’,X,I); Inc(I,5) End Else Inc(I);
WriteLn(‘Sirul modificat:’,X); ReadKey End.
Tema p/u acasă
De repetat paragraful 1.2, pagina 14

S-ar putea să vă placă și