Functii Siruri de Caractere Teorie C++

6
Funcţii pentru şiruri de caractere - Teorie 1. LUNGIMEA UNUI ŞIR DE CARACTERE (1) Funcţia strlen returnează numărul de caractere a şirului care începe la adresa s (primită ca parametru), fără a număra caracterul ‘\0’. 2. COPIEREA ŞIRURILOR DE CARACTERE (2, 3) Funcţia strcpy copie peste şirul d, şirul s. Copierea se va încheia după copierea caracterului ‘\0’ din şirul s. Funcţia returnează adresa d. Funcţia strncpy copie n caractere din şirul s peste şirul d. În cazul în care numărul de caractere a şirului s este mai mic decât n, se va copia şi caracterul ‘\0’ a şirului s. Funcţia returnează adresa d. 3. CONCATENAREA ŞIRURILOR DE CARACTERE (4, 5) Funcţia strcat concatenează la şirul d o copie a şirului s, după care adaugă ‘\0’. Funcţia returnează adresa d. Funcţia strncat concatenează n caractere din şirul s la şirul d. În cazul în care numărul de caractere a şirului s este mai mic decât n, se vor concatena doar strlen (s) caractere şi caracterul ‘\0’ a şirului s. Funcţia returnează adresa d. 4. COMPARAREA ŞIRURILOR DE CARACTERE (6, 7, 8, 9) Funcţia strcmp compară lexicografic şirurile s1 şi s2. Rezultatul funcţiei va fi: 1 int strlen (char *s) char * strcpy (char *d, char *s) char * strncpy (char *d, char *s, unsigned n) char * strncat (char *d, char *s, unsigned n) char * strcat (char *d, char *s) int * strcmp (char *s1, char *s2) int * stricmp (char *s1, char *s2) int * strncmp (char *s1, char *s2, unsigned n) int * strnicmp (char *s1, char *s2, unsigned n)

description

teorie

Transcript of Functii Siruri de Caractere Teorie C++

Page 1: Functii Siruri de Caractere Teorie C++

Funcţii pentru şiruri de caractere - Teorie

1. LUNGIMEA UNUI ŞIR DE CARACTERE (1)

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

2. COPIEREA ŞIRURILOR DE CARACTERE (2, 3)

Funcţia strcpy copie peste şirul d, şirul s. Copierea se va încheia după copierea caracterului ‘\0’ din şirul s. Funcţia returnează adresa d.

Funcţia strncpy copie n caractere din şirul s peste şirul d. În cazul în care numărul de caractere a şirului s este mai mic decât n, se va copia şi caracterul ‘\0’ a şirului s. Funcţia returnează adresa d.

3. CONCATENAREA ŞIRURILOR DE CARACTERE (4, 5)

Funcţia strcat concatenează la şirul d o copie a şirului s, după care adaugă ‘\0’. Funcţia returnează adresa d.Funcţia strncat concatenează n caractere din şirul s la şirul d. În cazul în care numărul de caractere a şirului s este

mai mic decât n, se vor concatena doar strlen (s) caractere şi caracterul ‘\0’ a şirului s. Funcţia returnează adresa d.

4. COMPARAREA ŞIRURILOR DE CARACTERE (6, 7, 8, 9)

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.

5. INVERSAREA ŞIRURILOR DE CARACTERE (10)

Funcţia strrev inversează şirul s şi returnează adresa şirul inversat.

1

int strlen (char *s)

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

char * strncpy (char *d, char *s, unsigned n)

char * strncat (char *d, char *s, unsigned n)

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

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

int * stricmp (char *s1, char *s2)

int * strncmp (char *s1, char *s2, unsigned n)

int * strnicmp (char *s1, char *s2, unsigned n)

char * strrev (char *s)

Page 2: Functii Siruri de Caractere Teorie C++

Funcţii pentru şiruri de caractere - Teorie

6. DUPLICAREA UNUI ŞIR (11)

Funcţia strdup caută o locaţie de memorie unde poate să memoreze un duplicat al lui s. În caz de succes se va returna adresa găsită. Altfel se returnează NULL.

7. CĂUTAREA UNUI CARACTER ÎNTR-UN ŞIR (12, 13)

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).

Funcţia strrchr se deosebeşte de strchr prin faptul că va căuta caracterul c de la dreapta la stânga.

8. CĂUTAREA UNUI SUBŞIR ÎNTR-UN ŞIR (14)

Funcţia strstr caută prima apariţie a şirului s2 în şirul s1. Căutarea se face de la stânga la dreapta. În cazul în care şirul s2 este găsit se va returna adresa din s1 unde începe s2. Altfel se returnează NULL.

9. TRANSFORMAREA LITERELOR MARI ÎN LITERE MICI ŞI INVERS (15, 16)

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.

10. ÎNLOCUIREA CARACTERELOR ÎNTR-UN ŞIR (17, 18)

Funcţia strset înlocuieşte toate caracterele din şirul s cu caracterul c. Returnează un pointer la s.Funcţia strnset înlocuieşte primele n caractere din şirul s cu caracterul c. Returnează un pointer la s.

2

char * strchr (char *s, char c)

char * strrchr (char *s, char c)

char * strstr (char *s1, char *s2)

char * strupr (char *s)

char * strlwr (char *s)

char * strset (char *s, char c)

char * strnset (char *s, char c, unsigned n)

char * strdup (char *s)

Page 3: Functii Siruri de Caractere Teorie C++

Funcţii pentru şiruri de caractere - Teorie

11. DESPĂRŢIREA UNUI ŞIR ÎN SUBŞIRURI (19)

Funcţia strtok este utilizată pentru a delimita unul sau mai multe subşiruri din şirul s, în funcţie de anumite caractere separator, memorate în şirul d.

Primul apel al funcţiei strtok: returnează un pointer către primul caracter din primul subşir al lui s care este format doar din

caractere consecutive ce nu aparţin lui d. plasează în şirul s un caracter ‘\0’ imediat după ultimul caracter al subşirului găsit. în cazul în care nu poate fi delimitat un subşir cu proprietatea cerută, funcţia returnează NULL.

Următoarele apeluri ale funcţii strtok utilizând NULL ca prim parametru- continuă delimitarea unui subşir, căutând de la adresa imediat următoare caracterului “\0” plasat de apelul

precedent.- funcţia returnează un pointer către adresa subşirului astfel delimitat sau NULL dacă nu mai există subşiruri.- După fiecare subşir delimitat, funcţia plasează “\0”.

Forma generala de separare a unui şir s în subşiruri, în funcţie de anumite caractere separator memorate în şirul d:

# include <string.h>void main (){

char s[200]; // şirul care va fi despărţit

char d[]=",. "; // şirul care conţine separatorii

char *p; // pointer căruia i se va atribui adresa subşirurilor găsitecin.get (s, 200);

p= strtok (s,d); // primul apelwhile (p){

cout << endl << p; // prelucrarea subşirurilor găsitep=strtok (NULL, d); // apelurile 2, 3, …

}}

11. STRSPN ŞI STRCSPN (20, 21)

Funcţia strspn returnează numărul de caractere consecutive din s care aparţin lui d.Funcţia strcspn returnează numărul de caractere consecutive din s care nu aparţin lui d.

12. STRPBRK (22)

Funcţia returnează adresa din s a primului caracter din s care aparţine lui d sau NULL dacă nici un caracter din s nu aparţine lui d.

3

char * strtok (char *s, char *d)

int strspn (char *s, char *d)

int strcspn (char *s, char *d)

char * strpbrk (char *s, char *d)

Page 4: Functii Siruri de Caractere Teorie C++

Funcţii pentru şiruri de caractere - Teorie

13. FUNCŢII DE CONVERSIE A ŞIRURILOR DE CARACTERE (23, 24, 25, 26, 27)

atoi converteşte şirul s în int şi returnează numărul rezultat. Conversia se opreşte la întâlnirea primului caracter nenumeric. În cazul în care şirul nu începe cu caractere numerice se va returna 0.

atol converteşte şirul s în long şi returnează numărul rezultat. Conversia se opreşte la întâlnirea primului caracter nenumeric. În cazul în care şirul nu începe cu caractere numerice se va returna 0.

atof converteşte şirul s în float şi returnează numărul rezultat. Conversia se opreşte la întâlnirea primului caracter care nu este număr şi diferit de „.”. În cazul în care şirul nu începe cu caractere numerice sau cu „.”se va returna 0.

itoa converteşte int – ul nr în şir şi îl memorează în s. Pentru conversie se va utiliza baza specificată de cel de-al 3-lea parametru. Funcţia returnează adresa şirului s.

ltoa converteşte long – ul nr în şir şi îl memorează în s. Pentru conversie se va utiliza baza specificată de cel de-al 3-lea parametru. Funcţia returnează adresa şirului s.

4

int * atoi (char *s)

long * atol (char *s)

float * atof (char *s)

char * itoa (int nr, char *s, int baza)

char * ltoa (long nr, char *s, int baza)