Documente Academic
Documente Profesional
Documente Cultură
Unitatea de curs:
Programarea structurată
Profesor: Eugenia Burca
Master în Informatica
Email: eugeniaburca69@gmail.com
Unitatea de curs:
Programarea structurată
Tema lecției: Tablouri de caractere
Tabloul de caractere
Pentru memorarea șirurilor în C++ se utilizează tablouri de
caractere de bază char, care au ca ultim element un terminator
de șir, caracterul null(zero ASCII), ‘\0’.
Declararea:
char nume [lg];
nume – identificator, precizează numele dat tabloului
lg – numărul maxim de caractere dintr-un șir
Tabloul de caractere
Exemple:
‘ ‘ – spațiu
‘A‘ – caracterul A
‘1‘ – caracterul unu
‘+‘ – caracterul plus
B y t e \0
char t[]=”123456789”;
int i;
i=strlen(t); // returnează i=9
Atenție! Pentru utilizarea funcțiilor de prelucrare a tabloului de caractere se va include biblioteca string / cstring
Tabloul de caractere
Problema 1: de la tastatură se citește o frază
(cuvintele se despart printr-un singur spațiu).
Elaborați un program prin intermediul căruia:
a) se va determina numărul de cuvinte
b) se va înlocui caracterul a cu b, iar silaba me cu to.
Tabloul de caractere
Problema 2: de la tastatură se citește un șir de
caractere. Elaborați un program prin intermediul
căruia se va verifica dacă șirul introdus este
palindrom. Palindrom este un cuvânt care poate fi
citit atât de la stânga la dreapta , cât și de la dreapta
la stânga, sensul rămânând același.
Transformarea șirurilor de caractere
Funcția strlwr(sir) are rolul de a converti toate literele mari din sir în litere
mici. Restul caracterelor rămân neschimbate;
Funcția strupr(sir) – are rolul de a converti toate literele mici din sir în
litere mari. Restul
caracterelor rămân neschimbate
Exemplu:
char a[]=“Abecedar.1”;
strupr(a); puts(a); // afiseaza ABECEDAR.1
strlwr(a); puts(a); //afiseaza abecedar.1
Tabloul de caractere
Problema 3: de la tastatură se citesc două șiruri
de caractere. Să se afișeze caracterele comune de
pe aceeași poziție fără a se face distincție dintre
minuscule și majuscule.
Copierea șirurilor de caractere
Funcția strcpy(sir_destinatie,sir_sursa) – copiază șirul sir_ sursa
în sir_destinatie (se simuleaza atribuirea a=b).
ATENTIE!! Nu este permisa atribuirea intre doua siruri de caractere
folosind operatorul =. Atribuirea se face folosind functia strcpy.
Exemplu:
char a[50]=”primul sir”,b[40]=”al doilea
sir”; a=b; //eroare
strcpy(a,b); // a = ”al doilea sir”; b=”al doilea sir”;
Exemplu:
char a[]=”Acest sir se copiaza trunchiat”,b[17];
strcpy(b,a,10); // a = ”Acest sir ”; se copiază numai primele
10 caractere
Concatenarea șirurilor de caractere
Funcția strcat(dest,sursa) – adaugă șirului dest șirul sursă. Șirul
sursă rămâne nemodificat. Operația se numește concatenare și nu
este comutativă.
Exemplu:
char a[]=”vine ”,b[]=”vacanta?”;
strcat(a,b); // a = ”vine vacanta?”;
Exemplu:
Exemplu:
cout<<strcmp("abcde","abcwww"); // se afisează -1
Tabloul de caractere
Problema 6: de la tastatură se citesc două cuvinte.
Să se creeze un șir de caractere care va include
ambele cuvinte în ordine crescătoare și le va separa
printr-un singur spațiu.
Compararea șirurilor de caractere
Funcția strncmp(sir1,sir2) – are rolul de a compara lexicografic primele
n caractere din două șiruri de caractere.
Valoarea returnata este -1 (daca sir1<sir2), 0 (daca sir1==sir2) sau 1
(daca sir1>sir2).
Atenție! Functia strncmp face distinctie între literele mari și cele mici ale
alfabetului, iar funcția strnicmp (sir1,sir2) nu face aceasta distincție (i -
ignore).
Exemplu:
cout<<strcmp("abcde","abcwww"); // se afisează -1
Tabloul de caractere