Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное
Здесь и ниже под такими выражениями как cs<ct не следует понимать арифметическое сравнение указателей. Подразумевается лексикографическое сравнение, т. е. cs меньше (больше) ct, если первый несовпавший элемент в cs арифметически меньше (больше) соответствующего элемента из ct.— Примеч. ред.
char *strcpy(s,ct) копирует строку ct в строку s, включая ' '; возвращает s char *strncpy(s,ct,n) копирует не более n символов строки ct в s; возвращает s. Дополняет результат символами ' ', если символов в ct меньше n char *strcat(s,ct) приписывает ct к s; возвращает s char *strncat(s,ct,n) приписывает не более n символов ct к s, завершая s символом ' '; возвращает s char strcmp(cs,st) сравнивает cs и ct; возвращает <0, если cs<ct; 0, если cs==ct; и >0, если cs>ct (I.B.: вообще-то, функция возвращает int) char strncmp(cs,ct) сравнивает не более n символов cs и ct; возвращает <0, если cs<ct, 0, если cs==ct, и >0, если cs>ct (I.B.: тоже int должна возвращать) char *strchr(cs,c) возвращает указатель на первое вхождение c в cs или, если такового не оказалось, NULL char *strrchr(cs,c) возвращает указатель на последнее вхождение c в cs или, если такового не оказалось, NULL size_t strspn(cs,ct) возвращает длину начального сегмента cs, состоящего из символов, входящих в строку ct size_t strcspn(cs,ct) возвращает длину начального сегмента cs, состоящего из символов, не входящих в строку ct char *strpbrk(cs,ct) возвращает указатель в cs на первый символ, который совпал с одним из символов, входящих в ct, или, если такового не оказалось, NULL char *strstr(cs, ct) возвращает указатель на первое вхождение ct в cs или, если такового не оказалось, NULL size_t strlen(cs) возвращает длину cs char * strerror(n) возвращает указатель на зависящую от реализации строку, соответствующую номеру ошибки n char * strtok(s, ct) strtok ищет в s лексему, ограниченную символами из ct; более подробное описание этой функции см. нижеФункции mem... предназначены для манипулирования с объектами как с массивами символов; их назначение - получить интерфейсы к эффективным программам. В приведенной ниже таблице s и t принадлежат типу void *; cs и ct - типу const void *; n - типу size_t; а c имеет значение типа int, приведенное к типу char.
void *memcpy(s,ct, n) копирует n символов из ct в s и возвращает s void *memmove(s,ct,n) делает то же самое, что и memcpy, но работает и в случае "перекрывающихся" объектов. int memcmp(cs, ct, n) сравнивает первые n символов cs и ct; выдает тот же результат, что и функция strcmp void *memchr(cs, c, n) возвращает указатель на первое вхождение символа c в cs или, если среди первых n символов c не встретилось, NULL void *memset(s, c, n) размещает символ c в первых n позициях строки s и возвращает sB4. Математические функции: <math.h>
В заголовочном файле <math.h> описываются математические функции и определяются макросы.
Макросы EDOM и ERANGE (находящиеся в <errno.h>) задают отличные от нуля целочисленные константы, используемые для фиксации ошибки области и ошибки диапазона; HUGE_VAL определена как положительное значение типа double. Ошибка области возникает, если аргумент выходит за область значений, для которой определена функция. Фиксация ошибки области осуществляется присвоением errno значения EDOM; возвращаемое значение зависит от реализации. Ошибка диапазона возникает тогда, когда результат функции не может быть представлен в виде double. В случае переполнения функция возвращает HUGE_VAL с правильным знаком и в errno устанавливается значение ERANGE. Если результат оказывается меньше, чем возможно представить данным типом, функция возвращает нуль, а устанавливается ли в этом случае errno в ERANGE, зависит от реализации. Далее x и y имеют тип double, n - тип int, и все функции возвращают значения типа double. Углы в тригонометрических функциях задаются в радианах.
sin(x) синус x cos(x) косинус x tan(x) тангенс x asin(x) арксинус x в диапазоне [-pi/2,pi/2], x в диапазоне [-1,1] acos(x) арккосинус x в диапазоне [0, pi], x в диапазоне [-1,1] atan(x) арктангенс x в диапазоне [-pi/2, pi/2] atan2(y,x) арктангенс y/x в диапазоне [-pi, pi] sinh(x) гиперболический синус x cosh(x) гиперболический косинус x tanh(x) гиперболический тангенс x exp(x) Экспоненциальная функция ex log(x) натуральный логарифм ln(x), x > 0 log10(x) десятичный логарифм lg(x), x > 0 pow(x,y) xy, ошибка области, если x = 0 или y<=0 или x<0 и y – не целое sqrt(x) квадратный корень x, x >= 0 ceil(x) наименьшее целое в виде double, которое не меньше x floor(x) наибольшее целое в виде double, которое не больше x fabs(x) абсолютное значение |x| ldexp(x, n) x * 2n frexp(x, int *еxр) разбивает x на два сомножителя, первый из которых - нормализованная дробь в интервале [1/2, 1), которая возвращается, а второй - степень двойки, эта степень запоминается в *exp. Если x - нуль, то обе части результата равны нулю modf(x,double *ip) разбивается на целую и дробную части, обе имеют тот же знак, что и x. Целая часть запоминается в *ip, дробная часть выдается как результат fmod(x, y) остаток от деления x на y в виде числа с плавающей точкой. Знак результата совпадает со знаком x. Если y равен нулю, результат зависит от реализацииB5. Функции общего назначения: <stdlib.h>
Заголовочный файл <stdlib.h> объявляет функции, предназначенные для преобразования чисел, запроса памяти и других задач.
double atof(const char *s)
atof переводит s в double; эквивалентна strtod(s, (char**) NULL).
int atoi(const char *s)
atoi переводит s в int; эквивалентна (int)strtol(s, (char**)NULL, 10).
int atol(const char *s)
atol переводит s в long; эквивалентна strtol(s, (char**) NULL, 10).
double strtod(const char *s, char **endp)
strtod преобразует первые символы строки s в double, игнорируя начальные символы-разделители; запоминает указатель на непреобразованный конец в *endp (если endp не NULL), при переполнении она выдает HUGE_VAL с соответствующим знаком, в случае, если результат оказывается меньше, чем возможно представить данным типом, возвращается 0; в обоих случаях в errno устанавливается ERANGE.