31
Colegiul Tehnic “Radu Negru” GALAŢI Examen de atestare profesionala pentru absolventii claselor de matematica- informatica Profesor Coordonator: Prof. Maria Stan Elev Talpeş Constantin Teodor

atestat Talpes

Embed Size (px)

Citation preview

Colegiul Tehnic Radu NegruGALAI

Examen de atestare profesionala pentruabsolventii claselor de matematica- informatica

Profesor Coordonator: Prof. Maria Stan Elev Talpe Constantin Teodor

Mai 2015

CuprinsIntroducere3Prezentare general4Declararea irurilor de caractere5Citirea si scrierea irurilor de caractere71.Citirea irurilor de caractere72.Scrierea irurilor de caractere9Prelucrarea irurilor de caractere101. Funcia STRLEN102. Funcia STRCPY103. Funcia STRNCPY114. Funcia STRCAT115. Funcia STRNCAT126. Funcia STRCMP127. Funcia STRNCMP128. Funcia STRICMP129. Funcia STRSET1310. Funcia STRNSET1311. Funcia STRLWR1312. Funcia STRUPR1413. Funcia TOLOWER1414. Funcia TOUPPER1415. Funcia STRCHR1516. Funcia STRRCHR1517. Funcia STRSTR1518. Funcia STRREV16Aplicaii17Bibliografie si webgrafie18

Funcii pentru irurile de caractere

Argument

Personal, am ales ca tema pentru atestat irurile de caractere avnd o gam larg de utilizare n aplicaii i siteme de operare. Prima dat cnd am folosit tehnologia irurilor de caractere a fost n sistemul de operare Kali pentru testarea personal a securitii router-ului ncercnd crack-uirea parolei interfeei Wireless oferindu-mi astfel o idee a securitii i proteciei al reelei mele de Internet, respectiv cea a interfeei Wireless.irurile de caractere sunt prezente aproape n toate limbajele de programare , respectiv cele mai populare, cum ar fi Java, C++, Ruby, .NET etc. Fiind prezente ntr-o gam att de larg de limbaje de programare, irurile de caractere pot fi utilizate de o gam larg gam de utilizatori.

Prezentare generalUn ir de caractere: este un tablou unidimensional (vector) de caractere; reprezint o succesiune de caractere cuprins ntre ghilimele i terminat cu caracterul NULL notat \0; conine orice tip de caracter: liter mic, liter mare, cifr, caracter special, delimitator, fiecare caracter fiind reprezentat prin codul su ASCII.

Un ir de caractere este o structur de date care este format dintr-o mulime ordonat de caractere, n care fiecare caracter se identific prin poziia sa n cadrul mulimii.

Exemplu:irul de caractere Limbajul C++ se poate reprezenta astfel:LimbajulC++\0

Fiecare caracter din setul de caractere al limbajului C++ se caracterizeaz printr-un cod unic, numit codul ASCII al caracterului, un numr ntreg ntre: 0 i 255.n cadrul setului ASCII, codurile caracterelor sunt dup cum urmeaz: - literele mari ncepnd cu 65 (A - 65, B - 66, ..., Z - 90) cifrele ncepnd cu 48 (0 48, 1 49, ..., 9 - 57). literele mici ncepnd cu 97 (a 97, b 98, ..., z - 122); Observaie: Diferena ntre codul ASCII al oricrei litere mici i codul ASCII al literei mari pereche este aceeai, 32.

Declararea irurilor de caractereDeclararea irurilor de caractere vectorul de caractere trebuie declarat cu un caracter mai mult (caracterul NULL) dect cel mai mare ir pe care l poate conine; un ir de caractere poate fi definit ca un vector de caractere, n dou moduri: char nume[dimensiune]; char *nume;

Unde nume este identificatorul variabilei de tip ir de caractere, iar dimensiune reprezint numrul maxim de caractere ce pot fi memorate n ir (inclusiv caracterul NULL);

char nume[dimensiune];// se declar un vector cu elemente de tip caracter;char *nume;// se declar un pointer ctre tipul caracter;Observaie: caracterele irului vor ocupa poziii consecutive n vector, ncepnd cu poziia 0!

Exemplul 1:

char sir[20]; se declar un ir de caractere n care vor putea fi memorate maxim 19 caractere; dac variabila sir reine irul informatica, reprezentarea n memoria intern este urmtoarea:

sirinformatica\0\0\0\0\0\0\0\0\0

012345678910111213141516171819

Unde: sir[0] = isir[1] = nsir[2] = fsir[10] = a - caracterul NULL (\0) este adugat automat de ctre compilator; - lungimea irului de caractere este dat de numrul de caractere (n exemplu este de 11);

Exemplul 2:

char s[5]; se declar un ir de caractere n care vor putea fi memorate maxim 4 caractere; dac variabila s reine irul algoritm, reprezentarea n memoria intern este urmtoarea:

siralgo\0

01234

Exemplul 3:

char a[15]=calculator; se declar un ir de caractere n care vor putea fi memorate maxim 14 caractere; irul de caractere a a fost iniializat la declararea lui, iar reprezentarea n memoria intern este urmtoarea:

calculator\0\0\0\0\0

01234567891011121314

dac se iniializeaz irul de caractere, nu mai este nevoie s se precizeze lungimea maxim a irului, aceasta fiind calculat de ctre compilator:char a[]=calculator;

Citirea si scrierea irurilor de caractere 1.Citirea irurilor de caractere Citirea se face folosind instruciunea cin n dou moduri: la nivel de caracter; la nivelul irului de caractere.

a. Citirea la nivel de caracter (caracter cu caracter)

coutn;for(i=0;i>sir[i];sir[i]=NULL; dac citirea irului de caractere se face caracter cu caracter trebuie adugat caracterul NULL la sfritul irului de caractere.

b. Citirea la nivelul irului de caracterecin>>sir; n acest caz caracterul NULL este adugat automat de ctre compilator; operaia de citire de la tastatur se termin atunci cnd a fost introdus un caracter alb (spaiu sau Enter); pentru a citi caracterul spaiu se folosete funcia get care are dou forme.

Exemplul 1: char s1[10]; cin>>s1; //dac introducem textul informatic i tastm Enter se memoreaz n variabila s1 irul informati Exemplul 2: char s2[10]; cin>>s2;//dac introducem textul informat i tastm Enter se memoreaz n variabila s2 irul informat;

Exemplul 3: char s3[10]; cin>>s3; //dac introducem textul info arena i tastm Enter se memoreaz n variabila s3 irul info;

Exemplul 4: char s4[10]; cin.get(s4,10); //dac introducem textul informatica i tastm Enter se memoreaz n variabila s4 irul informati;

Exemplul 5: char s5[10]; cin.get(s5,5); //dac introducem textul informatica i tastm Enter se memoreaz n variabila s5 irul info;

Exemplul 6: char s6[10]; cin.get(s6,10);//dac introducem textul info arena i tastm Enter se memoreaz n variabila s6 irul info aren;

Exemplul 7: char s7[10]; cin.get(s7,10,'$');//dac introducem textul informat$ i tastm Enter se memoreaz n variabila s7 irul informat;

Exemplul 8: char s8[10]; cin.get(s8,10);//dac introducem textul info$arena i tastm Enter se memoreaz n variabila s8 irul info$aren;

Exemplul 9: char s9[10]; cin.get(s9,9,\n); //dac introducem textul info arena$ i tastm Enter se memoreaz n variabila s9 irul info are;

Exemplul 10: char a[10], b[10]; cin.get(a,10); cin.get(b,10); //dac introducem textul info i tastm Enter se memoreaz n variabila a irul info i nu va putea fi citit al doilea ir;

Exemplul 11: char a[10], b[10]; cin.get(a,10); cin.get(); cin.get(b,10); //dac introducem textul info i tastm Enter i apoi introducem irul arena i tastm Enter se memoreaz n variabila a irul info i n variabila b irul arena;

Exemplul 12: char a[10], b[10]; cin.get(a,10); cin.get(b,10); //dac introducem textul info arena i tastm Enter se memoreaz n variabila a irul info aren i nvariabila b irul a;

2.Scrierea irurilor de caractereScrierea se face folosind instruciunea cout n dou moduri: la nivel de caracter; la nivelul irului de caractere. a. Scrierea la nivel de caracter (caracter cu caracter)

cin>>sir; i=0; while(sir[i]!=NULL) { cout>b;coutb; coutb;coutx; strset(a,x);couta>>x;strnset(a,x,n);couta;strlwr(a);couta;strupr(a);coutc;c=tolower(c);cout