Sunteți pe pagina 1din 7

SIRURI DE CARACTERE

in C++ Standard
[by Livocus]


DECLARAREA:



OBS:
In variabila s1 cu lungimea maxima de 100 de caractere putem memora doar 99 de caractere,
unul fiind rezervat pentru caracterul NULL (respectiv \0) ce marcheaza sfarsitul sirului.
In variabila x putem memora un singur caracter.

CITIREA:




Am declarat:
- 3 variabile sir, s1 cu lungimea maxima de
100 de caractere, s2 cu lungimea maxima
de 256 de caractere si s3 cu lungimea
maxima de 400 caractere ;
- O variabila de tip caracter cu numele x;
- O variabila de tip pointer, cu numele p.
In felul acesta putem citi in variabila s1 doar pana la
intalnirea caracterului spatiu. Restul textului va fi
ignorat.
Se foloseste atunci cand citim doar un CUVANT.
In acest fel putem citi un text ce contine si spatii (blank-
uri). Acesta va fi memorat in variabila s1.
OBS: Daca citim mai multe siruri de carcatere, dupa fiecare citire cu cin.get() se foloseste
cin.get() pentru a goli din memoria temporara ultimul caracter ENTER, altfel acesta va fi preluat
in variabila urmatoare.
Exemplu:


Functia cin.get() primeste 3 parametrii: cin.get(sir, numar, caracter).
Numarul specifica numarul maxim de caractere ce se citesc.
Caracterul specifica un terminator, adica se citeste pana la intalnirea acestuia. El nu va fi inclus
in sirul de caractere. Acest parametru este optional.
Exemple:



AFISAREA:



OBS: Un sir de caractere se poate afisa si prin parcurgerea lui caracter cu caracter, tinand cont de
faptul ca acesta este de fapt un vector de caractere.

In variabila s1 se citesc maxim 100 de
carcatere
In variabila s2 se citesc maxim 60 de caractere
sau pana la intalnirea carcaterului . (punct)
Se afiseaza variabila s1.
Se parcurge sirul caracter cu caracter si se
afiseaza fiecare caracter.
OBS: se va afisa si caracterul NULL de la final


OPERATII:
1. ATRIBUIREA --> strcpy(sir1, sir2)



Se poate folosi si sub forma:

Alta functie: --> strncpy(sir1, sir2, nr)


2. CONCATENAREA --> strcat(sir1,sir2)


Daca s2 continea textul popescu si s1 continea textul ion, dupa concatenare, s2 va contine
textul popescuion.


Caracterul NULL nu va fi afisat.
Continutul variabilei s1 se copiaza in variabila s3.
OBS: valoarea anterioara din s3 se pierde.
Atribuie variabilei s3 primele 5 caractere din
variabila s1.
Adauga continutul variabilei s1 la variabila s2.
Se poate folosi si sub forma urmatoare:


Alta functie: --> strncat(sir1, sir2, nr)


3. COMPARAREA --> strcmp(sir1,sir2)
Efect: compara cele doua siruri alfabetic si returneaza un numar astfel:
0 daca sunt egale (alfabetic)
1 daca sir1 este mai mare decat sir2
-1 daca sir1 este mai mic decat sir2
Compararea se face folosind codurile ASCII ale caracterelor.
Pentru ca functia returneaza un numar intreg, aceasta valoare o putem afisa sau folosi in
instructiunea if pentru a compara.
Exemple:

De observat ca CIFRELE au cod ASCII mai mic decat LITERELE MARI, iar acestea cod ASCII mai mic
decat LITERELE MICI.
Variabila s2 va contine textul Popescu Ion.
La valoarea variabilei s2 se vor adauga doar
primele 6 caractere din variabila s3.
Va afisa -1
Va afisa 1
Va afisa -1
Va afisa -1
Alta functie: --> strncmp(sir1, sir2, nr)
Efect: compara doar primele n caractere din sir1 si sir2.




Alta functie: --> stricmp(sir1, sir2)
Efect: compara cele doua siruri, sir1 si sir2, fara sa faca deosebire intre litere mari si litere mici.




INVERSAREA:

strrev(sir) --> va inversa sirul de caractere continut in variabila sir

Exemple:

De remarcat ca functia ignora caracterul NULL de la final.


Compara doar primele doua caractere din cele
doua siruri si va afisa 0.
Va afisa 0
Va inversa continutul variabile s si va afisa textul arav.
Atribuie variabilei inv valoarea data de inversul
sirului de caractere din variabila s.
ATENTIE: in acest caz, si s contine tot inversul.
Pentru a verifica daca un cuvant este palindrom avem nevoie de o copie a sirului initial.


TRANSFORMAREA LITERELOR:
(din mari in mici si invers)

strlwr(sir) --> va modifica sirul de carcatere transformand literele mari in mici, restul
caracterelor ramanand nemodificate

Exemplu:


strupr(sir) --> va modifica sirul de carcatere transformand literele mici in mari, restul
caracterelor ramanand nemodificate

Exemplu:




Verifica daca textul din s este palindrom.
Va afisa textul 11 octombrie.
Va afisa textul 11 OCTOMBRIE.
Se pot face astfel de transformari si la nivel de carcacter. In acest caz se folosesc functiile:

tolower(ch) --> primeste ca parametru un caracter si il modifica in litera mica, daca acesta
contine o litera mare, altfel ramane neschimbat

toupper(ch) --> primeste ca parametru un caracter si il modifica in litera mare, daca acesta
contine o litera mica, altfel ramane neschimbat

OBS: aceste doua functii, spre deosebire de strlwr si strupr, prin simpla apelare nu modifica
valoarea variabilei. Daca dorim acest lucru trebuie facuta o atribuire cu noua valoare.

Exemple:








Variabila x (de tip char) ramane nemodificata. Se va
afisa A.
Variabila x se va transforma in litera mica. Se va afisa
a.
Prima litera din sirul de caractere s se va
transforma in litera mare. Se va afisa Toamna.

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