Sunteți pe pagina 1din 12

Funcţii pentru şiruri de caractere

Informatică
profesor Gabriela-Rodica Freitag
clasa a X-a
1. Lungimea unui şir de caractere

int strlen (char *s)


Funcţia strlen returnează numărul de caractere al şirului
care începe la adresa s (primită ca parametru), fără a
număra caracterul ‘\0’ (NULL).

Exemplu:
char s[200]=“Informatica”;
int l=strlen(s);
cout<<l; //se va afişa 11
2. Inversarea şirurilor de caractere

char * strrev (char *s)


Funcţia strrev inversează şirul s şi returnează adresa
şirului inversat.
Exemplu:
char s[200]=“informatica”;
strrev(s);
cout<<s;
//se va afişa acitamrofni
ai cn if to ar m ra ot fi nc ia NUL
NUL
L
L

s
3. Transformarea literelor mari în litere mici şi invers

a) char * strupr (char *s)


b) char * strlwr (char *s)
Funcţia strupr transformă literele mici din şirul s în
litere mari. Funcţia returnează un pointer la şirul s.

Funcţia strlwr transformă literele mari din şirul s în


litere mici. Funcţia returnează un pointer la şirul s.
4. Căutarea unui caracter într-un şir

a) char * strchr (char *s, char c)


Funcţia strchr caută caracterul c în şirul s. Căutarea se face
de la stânga la dreapta. În cazul în care caracterul c este găsit,
căutarea se încheie şi funcţia returnează adresa din şirul s unde
a fost găsit c. În cazul în care caracterul c nu este găsit, funcţia
returnează adresa 0 (NULL).
Exemplu:
char s[200]=“informatica”;
char *p=strchr(s,’a’);
if(p){int i=p-s; cout<<i;} //se va afişa 6
i n f o r m a t i c a NUL
L

s p
b) char * strrchr (char *s, char c)
Funcţia strrchr se deosebeşte de strchr prin faptul că va
căuta caracterul c de la dreapta la stânga.

Exemplu:
char s[200]=“informatica”;
char *p=strrchr(s,’a’);
if(p){int i=p-s; cout<<i;} //se va afişa 10

i n f o r m a t i c a NUL
L

s p
5. Copierea şirurilor de caractere

a) char * strcpy (char *d, char *s)


Funcţia strcpy copiază peste şirul d (la adresa d), şirul s.
Copierea se va încheia după copierea caracterului NULL din
şirul s. Funcţia returnează adresa d.
Exemplu:
char d[200]=“Informatica”;
char s[200]=“TIC”;
strcpy(d,s);
cout<<d; //se va afişa TIC
T
I In C
f oNUL
L
r m a t i c a NUL
L
T I C NUL
L

d s
char * strncpy (char *d, char *s, unsigned
b)
n)
Funcţia strncpy copiază n caractere din şirul s peste şirul d.
În cazul în care numărul de caractere al şirului s este mai mic
decât n, se va copia şi caracterul ‘\0’ al şirului s. Funcţia
returnează adresa d.
Exemplu:
char d[200]=“Informatica”;
char s[200]=“TIC”;
strncpy(d,s,2);
cout<<d; //se va afişa TIformatica
strncpy(d+3,s,5);
cout<<d; //se va afişa TIfTIC
IT nI f oT rI m
C aNUL
L
t i c a NUL
L
T I C NUL
L

d s
6. Concatenarea şirurilor de caractere

a) char * strcat (char *d, char *s)


Funcţia strcat concatenează la şirul d o copie a şirului s,
după care adaugă ‘\0’. Funcţia returnează adresa d.
Exemplu:
char d[200]=“Informatica”;
char s[200]=“TIC”;
strcat(d,s);
cout<<d; //se va afişa InformaticaTIC
I n f o r m a t i c a TNUL
L
I C NUL
L

T I C NUL
d L

s
char * strncat (char *d, char *s, unsigned
b)
n)
Funcţia strncat concatenează n caractere din şirul s la
şirul d. În cazul în care numărul de caractere al şirului s este
mai mic decât n, se vor concatena doar strlen (s) caractere şi
caracterul ‘\0’ al şirului s. Funcţia returnează adresa d.
Exemplu:
char d[200]=“Informatica”;
char s[200]=“TIC”;
strncat(d,s,2);
cout<<d; //se va afişa InformaticaTI
I n f o r m a t i c a T
NUL
L
I NUL
L

T I C NUL
d L

s
7.Compararea şirurilor de caractere

a) int * strcmp (char *s1, char *s2)


b) int * stricmp (char *s1, char *s2)
c) int * strncmp (char *s1, char *s2, unsigned n)
d) int * strnicmp (char *s1, char *s2, unsigned n)
Funcţia strcmp compară lexicografic şirurile s1 şi s2. Rezultatul funcţiei va fi:
• un întreg < 0 dacă s1<s2,
• un întreg >0 dacă s1>s2,
• 0 dacă s1 şi s2 sunt identice.
Funcţia stricmp este asemănătoare cu strcmp, diferenţa constă în faptul că nu se
face diferenţa dintre litere mici şi litere mari.
Funcţia strncmp este asemănătoare cu strcmp, diferenţa constă în faptul că se vor
compara doar primele n caractere ale şirurilor s1 şi s2.
Funcţia strnicmp este asemănătoare cu strncmp, diferenţa constă în faptul că nu se
face diferenţa dintre litere mici şi litere mari.
4. Căutarea unui şir într-un alt şir

a) char * strstr (char *s, char *x)


Funcţia strchr caută şirul x în şirul s. Căutarea se face de la
stânga la dreapta. În cazul în care şirul x este găsit, căutarea se
încheie şi funcţia returnează adresa din şirul s unde a fost găsit
x. În cazul în care şirul x nu este găsit, funcţia returnează
adresa 0 (NULL).
Exemplu:
char s[200]=“informatica”;
char *p=strchr(s,”form”);
cout<<p; //se va afişa formatica
i n f o r m a t i c a NUL
L

s p

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