JezykC13, Podstawy programowania
[ Pobierz całość w formacie PDF ]
12. PRZEGLĄD POZOSTAŁYCH BIBLIOTEK STANDARDOWYCH JĘZYKA ANSI C
1) Klasyfikowanie znaków
( plik nagłówkowy <ctype.h> )
Funkcje w tym zbiorze przyjmują jako argument wartość znakową (zrzutowaną na int), zwracają
wartość niezerową, jeśli argument jest znakiem określonego rodzaju, zaś zero, jeśli nie jest.
Przykład
int isalpha (int c) - zwraca wartość niezerową, jeśli c jest literą (małą lub dużą)
int isdigit (int c) - zwraca wartość niezerową, jeśli c jest cyfrą
Dodatkowo w tym zbiorze umieszczone są dwie funkcje konwersji:
int tolower (int c) - zamienia duże litery na odpowiednie małe litery
int toupper (int c) - zamienia małe litery na odpowiednie duże litery
2) Operowanie na łańcuchach
( plik nagłówkowy <string.h> )
Funkcje w tym zbiorze dzielą się na dwie grupy:
- funkcje operujące na łańcuchach dowolnej długości (zakończonych znakiem ’\0’);
- funkcje operujące na ciągach znaków o długości określonej jednym z argumentów funkcji.
Przykład
char *strcpy (char *s, char *t) - kopiuje łańcuch z t do s (łącznie ze znakiem ’\0’)
int strcmp (char *s, char *t) - porównuje leksykograficznie („alfabetycznie”) łańcuchy t i s,
zwraca wartość ujemną, jeśli s < t, zero jeśli s = t, wartość dodatnią, jeśli s > t
void *memcpy ( void *s, void *t, size_t n ) - kopiuje dokładnie n znaków z miejsca wskazywanego
przez t do miejsca wskazywanego przez s (przy założeniu, że oba fragmenty pamięci nie
zachodzą na siebie)
Uwaga
Miejsce w pamięci przeznaczone na wynik działania funkcji musi być wcześniej zarezerwowane
(na przykład przy użyciu funkcji
malloc
).
3) Funkcje matematyczne
( plik nagłówkowy <math.h> )
Zbiór ten zawiera typowe funkcje dostępne w językach programowania (poza funkcjami obliczającymi
wartość bezwzględną liczby całkowitej oraz obliczającymi parę (iloraz, reszta) dla liczb całkowitych,
które zostały umieszczone w
stdlib.h
).
Argumenty funkcji trygonometrycznych oraz wartości funkcji odwrotnych do nich są podawane
w radianach.
Przykład
double sin ( double x ) - oblicza sinus wartości x
double asin ( double x ) - oblicza wartość arcus sinus x (dla x w przedziale [-1, 1] )
x
double exp (double x) - oblicza wartość
e
y
double pow ( double x, y ) - oblicza x (dla x = 0 wartość y musi być dodatnia, dla x < 0 wartość y
musi być całkowita)
double fabs ( double x ) - oblicza wartość bezwzględną liczby x
4)
Funkcje narzędziowe
( plik nagłówkowy <stdlib.h> )
W tym zbiorze umieszczone są funkcje konwersji typów danych, funkcje przydzielające i zwalniające
pamięć (na przykład poznane wcześniej funkcje
malloc
i
free
) oraz inne funkcje nie zaklasyfikowane
do którejś z pozostałych bibliotek standardowych.
Przykład
double atof ( const char *s) - zamienia łańcuch s na reprezentowaną przez niego liczbę typu double
(dokładniej: zamienia najdłuższy możliwy podłańcuch początkowy na liczbę, zaś jeśli zamiana
jest w ogóle niemożliwa, funkcja zwraca 0)
int rand ( void ) - funkcja zwraca pseudolosową liczbę całkowitą z przedziału [0, RAND_MAX],
gdzie wartość RAND_MAX zależy od implementacji (musi wynosić co najmniej 32767)
void exit ( int status ) - zakończenie działania programu i przekazanie do procesu rodzicielskiego
wartości status (zwyczajowo przyjmuje się, że wartość 0 oznacza zakończenie pomyślne)
int system ( const char *s ) - wykonanie przez interpreter polecenia systemowego zapisanego
w łańcuchu s (jeśli s jest łańcuchem pustym, funkcja umożliwia testowanie, czy interpreter
poleceń jest dostępny)
char *getenv ( const char *nazwa ) - zwraca wartość zmiennej (o podanej nazwie) środowiska
bieżącego procesu
void *bsearch ( const void *klucz, const void *tablica, size_t n, size_t rozmiar,
int (*cmp) ( const void *wart_klucza, const void *wart_danej ) ) -
przeszukuje uporządkowaną rosnąco tablicę o danej liczbie i rozmiarze elementów przy
zastosowaniu funkcji porównującej cmp (zwraca NULL w przypadku niepowodzenia)
void qsort ( void *tablica, size_t n, size_t rozmiar, int (*cmp) (const void *, const void * ) ) -
wykonuje sortowanie danej tablicy o danej liczbie i rozmiarze elementów, przy zastosowaniu
funkcji cmp porównującej dwa elementy tablicy
int abs ( int n ) - oblicza wartość bezwzględną argumentu całkowitego n
[ Pobierz całość w formacie PDF ]