Sunteți pe pagina 1din 5

Incrementarea sirurilor de caractere in

C++

Definim sirul de caractere ca fiind o succesiune de


carcatere cuprinsa intre 2 perechi de ghilimele si care poate
sa contina orice caracter: litere mari si mici , cifre ,
caractere speciale ( ? , ! etc.) si delimitatori ( , , ; etc.).
Mai putem defini sirul de caractere ca fiind o structura
de date ce este formata dintr-o multime ordonata de
caractere in care fiecare caracter se identifica prin pozitia
sa in cadrul multimii.
Exemplu: char v[50]
v=( a , ! , o , u, x)
In cazul sirurilor de carctere, acestea se termina cu cel
putin un caracter nul NULL sau ( \o) care marcheaza
sfarsitul sirului de caractere.
OBS-Lungimea unui sir de carctere va trebui intotdeauna
declarata ca fiind lungimea enuntata in problema plus 1
(rezervat pntru caracterul nul).
Declrarea sirului de caractere
a) Ca variabila:
char nume_sir[dim_max]
-unde dim_max contine cel putin un loc rezervat pentru
caracterul nul.
b) Ca pointer
Un pointer este o variabila care retine adresa de memorie a
unei alte variabile . Numele unui tablou si al unui sir de
caractere sunt interpretate de compilatorul C++ ca fiind o
constanta de tip adresa adica o constanta de tip pointer.
Dimensiunea efectiva a unui sir de caractere este data de
numarul efectiv de caractere din sirul respectiv.
Daca dim_max a sirului de caractere este mai mare decat
lungimea efectiva a sirului atunci diferenta dintre ele va fi
umpluta cu caracterul nul.
Exemplu: char s[7]=test;
Lungimea efectiva =4
dim_max=7
Sirul vid va avea lungimea 0.
Citirea sirurilor de carctere
a) Citirea unui sir de caractere care nu contine spatii
=> cin>>nume_sir;
Exemplu: char s[7] ,s1[10];
cout<<s=; cin>>s; //test
cout<<s<<endl;// test
cout<<s1=; cin>>s1;//Ala bala
cout<<s1;//Ala
Daca se incearca citirea unui sir de caractere ce contine
spatii cu ajutorul lui cin , atunci citirea se va opri la primul
caracter spatiu intalnit.
b)Citirea unui sir de carcatere ce contine spatii. Se
realizeaza cu functia cin.get(nume_sir, caracter
delimitator,nr_caractere);
Se realizeaza citirea sirului de caractere pana cand se
intampla unul din evenimentele:
S-a intalnit caracterul delimiator specificat
S-au citit cele nr carctere
Exemplu: s=Am niste gaini;
cin.get(s,100);// Am niste gaini
cin.get(s,g,100);//Am niste
OBS: Daca este necesar sa citim mai multe siruri de
caractere unul dupa celalalt folosind cunctia cin.get atunci
este necesar sa golim buferul de memorie de caracterul
nul.Aceasta se realizeaza prin folosirea functiei cin.get fara
parametri. ( cin.get();)
Exemplu: cin.get(s,61);
cin.get();
cin.get(s1,25);
OBS:Putem citi sirurile de caractere folosind si functiile
puts si gets specifice limbajului C.
Pentru a putea folosi functiile cin.get trebuie sa folosim
fisierul header string.h.
Determinarea lungimii efective a sirurilor de caractere se
realizeaza cu ajutorul functiei strlen(nume_sir), functie
care se gaseste in string.h.
Prelucrarea sirurilor de caractere ca vector de
caractere.
Asa cum rezulta din definitia unui sir de caractere
acesta poate fi tratat ca un vector de caractere.
Si in cazul sirurilor de caractere indicii de pozitie
pleaca de la 0.
for(i=0;i<strlen(sir);i++)
<prelucreaza sir[i]>

Aplicatii:

1. Se citeste de la tastatura un sir de caractere de


maxim 70 de caractere. Sa se afiseze sirul , sa se
afiseze unele sub altele caracerele din sir alaturi de
codul ASCII si sa se afiseze numarul literelor mari din
sir.
#include <iostream>
#include<strng.h>
using namespace std;
int main()
{chars[71];
int nr=0,i;
cin.get(s,71);
cout<<s=<<s<<endl;
for(i=0;i<strlen(s);i++)
cout<<s[i]<< <<(int) s[i]<<endl;
for(i=0;i<strlen(s);i++;
if(s[i]>=A&&s[i]<=Z)
nr++;
cout<<nr=;<<nr;
return 0;
2.Se citesc de la tastatura n caractere citite unul dupa
altul. Sa se afiseze sirul de caractere ce se poate forma cu
aceste caractere.
#include <iostream>
#include<strng.h>
using namespace std;
int main()
{int n,i,char c ,s[100];
cout<<n=; cin>>n;
for(i=0;i<n;i++)
{cout<Introdu caracterul:; cin>>c;
s[i]=c;//Obtinem vectorul de caractere }
I0++;
s[i-1]=\0; //Obt sir de caractere adaugand caracterul nul
cout<<s;
return 0; }

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