Funcţiile din această clasă implică includerea fişierului string.h. Indicăm mai jos funcţiile din această clasă, utilizate mai frecvent. O parte din aceste funcţii au mai fost utilizate în diferite exemple din lecţiile anterioare.
Funcţii de copiere:
char *strcpy (char *dest, const char *sursa);
char *strncpy (char *dest, const char *sursa, unsigned n);
-
prima funcţie copiază şirul de caractere spre care pointează sursa în zona spre care pointează dest;
-
a doua funcţie realizează acelaşi lucru, dar copiază cel mult primii n octeţi din sursă;
-
ambele funcţii returnează valoarea pointerului dest.
Funcţii de concatenare:
int strcmp (const char *dest, const char *sursa);
char *strncat (const char *dest, const char *sursa, unsigned n);
-
prima funcţie copiază şirul spre care pointează sursa la sfârşitul şirului din zona spre care pointează dest;
-
a doua funcţie realizează acelaşi lucru, dar se copiază cel mult primii n octeţi din zona spre care pointează sursa;
-
ambele funcţii returnează valoarea pointerului dest.
Funcţii de comparare:
int strcmp (const char *sir1, const char *sir2);
int stricmp (const char *sir1, const char *sir2);
int strncmp (const char *sir1, const char *sir2, unsigned n);
int strnicmp (const char *sir1, const char *sir2, unsigned n);
-
aceste funcţii compară şirurile de caractere din zonele spre care pointează pointerii sir1 şi sir2;
-
ele returnează o valoare:
-
negativă, dacă şirul spre care pointează sir1 este mai mic decât cel spre care pointează sir2;
-
zero, dacă cele două şiruri sunt egale;
-
pozitivă, dacă şirul spre care pointează sir1, este mai mare decât cel spre care pointează sir2;
-
prezenţa literei i (ignore) în numele funcţiei înseamnă că nu se face distincţie între literele mari şi mici;
-
prezenţa literei n în numele funcţiei înseamnă că se realizează comparaţia pe cel mult n octeţi.
Observaţie:
1o. Fie şirurile s1 şi s2 de lungime l1 şi l2. Atunci cele două şiruri sunt egale dacă:
l1=l2 ( au aceeaşi lungime);
s1[k] = s2 [k] pentru k=0,1,...,l1
2o. Şirul s1 este mai mic decât şirul s2 dacă există un j, j 0 şi j min (l1, l2), astfel încât:
s1[j] < s2[j];
s1[k] = s2[k], pentru k=0,1, . . . , j-1.
3o. Şirul s1 este mai mare decât şirul s2 dacă există un j, j 0 şi j min(l1, l2), astfel incât:
s1[j] > s2[j];
s1[k] = s2[k], pentru k=0,1, . . . , j-1.
Funcţia lungime:
unsigned strlen (const char *sir);
-
returnează lungimea şirului de caractere spre care pointează sir;
-
caracterul NUL care termină şirul nu este numărat.
11.5. Funcţii de calcul
Majoritatea funcţiilor matematice au prototipurile în fişierul math.h. Multe dintre acestea se utilizează la calculul valorilor funcţiilor elementare şi au prototipul:
double nume (double x);
unde nume este unul din următoarele:
acos -arccos;
asin -arcsin;
atan -arctg;
cos -cos;
sin -sin;
exp -ex;
log -ln;
log10 -lg;
sqrt -rădăcina pătrată;
ceil -returnează cel mai mare întreg mai mare sau egal cu x (partea întreagă);
floor -returnează cel mai mare întreg mai mic sau egal cu x;
fabs -valoarea absolută;
sinh -sinus hiperbolic;
cosh -cosinus hiperbolic;
tanh -tangentă hiperbolică;
Alte funcţii:
double atan2 (double y, double x); - returnează arctg(y/x);
double pow (double x, double y); - returnează xy;
double cabs (struct complex z); - returnează modulul numărului
complex;
double poly (double x, int n, double c[ ] ) - returnează valoarea polinomului
de grad n în punctul x, coeficienţii
sunt c[0], . . . c[n].
Funcţiile care urmează au prototipul în fişierele stdlib.h şi math.h:
int abs (int n); - returnează valoarea absolută din întregul n;
long labs (long n); - returnează valoarea absolută din întregul long n;
Dostları ilə paylaş: |