Брайан Керниган - Язык программирования Си. Издание 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.
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.


