Здесь и ниже под такими выражениями как 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.