Sunteți pe pagina 1din 8

Funcții pentru prelucrarea șirurilor de caractere

Nr Forma generala Realizeaza Exemplu


Functia returnează lungimea
int strlen(char *sir) sir=”informatica”
sirului de caractere (fara
1 caracterul NULL) ca numar
cout<<strlen(sir);
//se afiseaza 11
intreg.

char *strcpy( char *sir2, Sunt copiate din sirul sir1


char *sir1) in sir2 toate caracterele, sir1=”info”;
inclusiv caracterul NULL. sir2=”exemplu”;
2 sir2=sirul destinatie; Functia returneaza ca strcpy(sir2, sir1);
sir1=sirul sursa; rezultat un pointer care cout<<sir1<<” ”<<sir2;
indica adresa sirului //se afiseaza info info
destinatie.

sir1=”informatica”;sir2=”exemplu”;
Sunt copiate din sir1 in strncpy(sir2, sir1, 7);
char *strncpy(char *sir2,
sir2 maxim n caractere, cout<<sir1<<” ”<<sir2;
char *sir1, int n)
incepand cu primul caracter. //se afiseaza informatica informa
3 sir2=sirul destinatie;
Functia returneaza ca sir1=”carte”;sir2=”exemplu”;
rezultat un pionter care strncpy(sir2, sir1, 7);
sir1=sirul sursa;
indica adresa sirului cout<<sir1<<” ”<<sir2;
destinatie. //se afiseaza carte carte
Sunt copiate din sir1 in
sir2 maxim n-1 caractere, sir1=”carte”;
incepand cu primul caracter. sir2=”exemplu”;
Functia adauga la sfarsitul cout<<strxfrm(sir2, sir1, 2)<<” ”;
int strxfrm(char *sir2, char cout<<sir1<<” ”<<sir2;
caracterelor copiate
*sir1, int n) //se afiseaza 5 carte caemplu
caracterul NULL. In cazul in
4 care n-1 este mai mare decat sir1=”informatica”;
sir2=sirul destinatie; sir2=”exemplu”;
lungimea sirului sursa, se
sir1=sirul sursa; cout<<strxfrm(sir2, sir1, 6)<<” ”;
va copia tot sirul sursa,
dar nu si alte caractere. cout<<sir1<<” ”<<sir2;
Functia furnizeaza ca //se afiseaza 11 informatica informu
rezultat lungimea sirului
obtinut in urma copierii.
sir1="informatica",
sir2="exemplu";
char *strcat(char *sir2,
Sunt adaugate din sirul sir2 strcat(sir2, sir1);
char *sir1)
in sirul sir1 toate cout<<sir1<<" "<<sir2;
5 sir2=sirul destinatie;
caracterele, inclunsiv //se afiseaza informatica
sir1=sirul sursa;
caracterul NULL. exempluinformatica

Sunt adaugate din sirul sir2 sir1="info",sir2="exemplu";


char *strncat(char *sir2, in sirul sir1 maxim n strncat(sir2, sir1, 2);
char *sir1, int n) caractere, incepand cu cout<<sir1<<" "<<sir2;
sir2=sirul destinatie; primul caracter. In cazul in //se afiseaza info exempluin
6 care n este mai mare decat sir1=”carte”;sir2=”exemplu”;
sir1=sirul sursa;
lungimea sirului sursa, se strncat(sir2, sir1, 11);
va adauga tot situl sursa, cout<<sir1<<” ”<<sir2;
dar nu si alte caractere. //se afiseaza carte exemplucarte
Compara cele doua siruri de
caractere. Daca sunt
identice, rezultatul este 0.
int strcmp(char *sir1, char Daca sir1 este mai mare cout<<strcmp("abc","abc");//0
*sir2) decat sir2, rezultatul este cout<<strcmp("ab","abc");//-1
7 pozitiv. Daca sir1 este mai cout<<strcmp("abcd","Abc");//1
mic decat sir2, rezultatul cout<<strcmp("Abc","abc");//-1
este negativ. Se face
diferenta intre majuscule si
minuscule.
Compara cele doua siruri de
int stricmp(char *sir1, char caractere la fel ca si cout<<stricmp("abc","abc");//0
*sir2) functia strcmp(), dar fara cout<<stricmp("ab","abc");//-1
8 sa faca diferenta inte cout<<stricmp("abcd","Abc");//1
literele mari si literele cout<<stricmp("Abc","abc");//0
mici.
Compara primele n caractere
din cele doua siruri de
int strncmp(char *sir1, char caractere furnizand cout<<strncmp("mama","abc",2);//1
9 *sir2) rezultatul la fel ca si cout<<strncmp("Abcd","Abc",3);//0
functia strcmp (face cout<<strncmp("abcd","123",1);//1
diferenta intre literele
mari si cele mici).
Compara cele doua siruri de
caractere la fel ca si
cout<<strnicmp("mama","abc",2);//1
int strnicmp(char *sir1, functia strncmp(), dar fara
10 char *sir2) sa faca diferenta inte
cout<<strnicmp("abcd","Abc",3);//0
cout<<strnicmp("abcd","123",1);//1
literele mari si literele
mici.
Sirul sir care este parcurs
incepand cu primul caracter
char *strset(char*sir,char pana la sfarsitul lui cout<<strset(“informatica”,’y’);
11 ch) fiecare caracter fiind //se afiseaza yyyyyyyyyyy
inlocuit cu caracterul ch,
mai putin caracterul NULL.
In sirul sir sunt parcurse
primele n caractere incepand
cu primul caracter, fiecare
caracter fiind inlocuit cu cout<<strnset(“informatica”,’y’,4);
char *strnset(char*sir,char //se afiseaza yyyyrmatica
12 ch,int n)
caracterul ch. Daca n este
mai mare sau egal cu
lungimea sirului functia va
avea acelasi efect ca si
strset().
In sirul de caractere sir se
transforma literele mari in cout<<strlwr (“InFoRmAtIcA”);
13 char *strlwr(char*sir) litere mici. Restul //se afiseaza informatica
caracterelor nu sunt
modificate.
In sirul de caractere sir,
transforma literele mici in cout<<strupr (“InFoRmAtIcA”);
14 char *strupr(char*sir) litere mari. Restul //se afiseaza INFORMATICA
caracterelor nu sunt
modificate.
Functia furnizeaza ca cout<<strrev (“informatica”);
rezultat un pointer care //se afiseaza acitamrofni
15 char *strrev(char*sir)
indica adresa
siruluiinversat .
Functia furnizeaza ca
rezultat un pointer catre
char *strchr(char*sir,char prima aparitiei a cout<<strchr (“InFoRmAtIcA”,’R’);
16 ch) caracterului ch in sirul de //se afiseaza RmAtIcA
caractere sir (cea din
extremitatea stanga).
Functia furnizeaza ca
rezultat un pointer catre
char *strrchr(char*sir,char prima aparitiei a cout<<strrchr (“caracterul”,’r’);
17 ch) caracterului ch in sirul de //se afiseaza rul
caractere sir (cea din
extremitatea dreapta).
Se cauta subsirul sb in
sirul sir. Daca se gaseste
char *strstr(char*sir,char subsirul fuctia furnizeaza cout<<strstr (“caracterul”, “act”);
18 *sb) ca rezultat un pointer catre //se afiseaza acterul
prima aparitie a subsirului.
Altfel furnizeaza NULL.
Furnizeaza ca rezultat sir1=”carte”;
numarul de caractere sir2=”exemplu”;
consecutive din sirul cout<<strspn(sir2, sir1);//0
int strspn(char*sir1,char
19 *sir2)
sir1(incepand cu primul sir1=”portocale”;
caracter), care se gasesc sir2=”portocaliu”;
printre caracetrele din cout<<strspn(sir2, sir1);//8
sirul sir2.
Furnizeaza ca rezultat
sir1=”carte”;
numarul de caractere
sir2=”exemplu”;
consecutive din sirul
int strcspn(char*sir1,char cout<<strcspn(sir2, sir1);//4
20 *sir2)
sir1(incepand cu primul
sir1=”portocale”;
caracter), care nu se gasesc
sir2=”portocaliu”;
printre caracterele din
cout<<strcspn(sir2, sir1);//0
sirul sir2.
Furnizeaza ca rezultat un cout<<strpbrk(”portocala”,
pointer catre primul ”cadou”);//se afiseaza ortocala
caracter din sirul sir1 care cout<<strpbrk(”informatica”,
char *strpbrk(char*sir1,char se gaseste si in sirul sir2. ”carte”);//se afiseaza rmatica
21 *sir2) Daca nici un caracter din cout<<strpbrk(”12345”, ”70”);//se
sir1 nu se gaseste printre afiseaza NULL
caracterele lui sir2 functia
returneaza NULL.
Functia inlocuieste
char *strtok
separatorii prin caracterul sir1="azi, ana are mere."’
(char*sir1,char*sir2)
NULL si furnizeaza ca sir2=",. ";
rezultat un pointer catre cout<<strtok(sir1,sir2);//azi
sir2=format din caractere cu
22 rol de separatori
primul caracter al primei cout<<strtok(NULL,sir2);//ana
entitati. Pentru a gasi cout<<strtok(NULL,sir2);//are
sir1=format din mai multe
urmatoarea entitate din cout<<strtok(NULL,sir2);//mere
entitati separate prin mai
sirul sir1 se va face apelul cout<<strtok(NULL,sir2);//NULL
muti separatori din sir2
strtok(NULL,sir2).
Conversia unui sir de caractere int-un numar
Converteste sirul de
23 int atoi(sir) caractere sit intr-o valoare
numerica intreaga.
Converteste sirul de
sir="123.45";
caractere sir intr-o valoare
24 long atol(sir)
numerica intreaga de tip
cout<<atoi(sir)<<endl;//123
cout<<atol(sir)<<endl;//123
long.
cout<<atof(sir)<<endl;//123.45
Converteste sirul de
caractere sir intr-un numar
25 double atof(sir)
real in virgula mobila dubla
precizie.

Conversia unui numar in sir de caractere


Converteste in sirul de
caracetere sir o valoare
26 int itoa(n,sir,b) numerica intreaga n
exprimata in baza de
n=123.67;
numeratie b.
cout<<itoa(n,sir,10)<<endl;//123
Converteste in sirul de
cout<<ltoa(n,sir,2)<<endl;//1111011
caractere sir o valoare
27 long ltoa(n,sir,b) numerica intreaga de tip
long n exprimata in baza de
numeratie b.

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