|
Программирование >> Структурное программирование
void *bsearch(const void *key, const void *base, size t nmemb, size t size, int (*compar) (const void *, const void *) ); Ищет в массиве из nmemb объектов, на первый элемент которого ссылается base, элемент, соответствующий объекту, на который ссылается параметр key. Размер элемента массива определяется значением параметра size. Функция сравнения, на которую указывает сошраг, вызывается с двумя аргументами, ссылающимися на объект key и на элемент массива именно в этом порядке. Функция должна возвращать целое число, меньшее нуля, или нуль, или большее нуля, если объект key оценивается соответственно как меньший, равный или больший, чем элемент массива. Массив должен быть упорядочен следующим образом: первыми идут элементы, меньшие, чем объект key, затем все элементы, которые равны ему, и затем все элементы, которые больше, чем объект key. Функция bsearch возвращает указатель на элемент массива, соответствующий key, или нулевой указатель, если соответствие не обнаружено. Если два элемента удовлетворяют критерию поиска, то неизвестно, который из них будет выбран алгоритмом поиска. void qsort(void *base, size t nmemb, size t size, int (*compar)(const void *, const void *)); Сортирует массив из nmemb объектов. Начальный элемент указывается параметром base. Размер элемента определяется параметром size. Элементы массива сортируются по возрастанию с помощью функции сравнения, на которую указывает параметр сотраг. Эта функция вызывается с двумя аргументами, ссылающимися на сравниваемые объекты. Функция возвращает целое число меньшее чем нуль, равное нулю или большее нуля, если первый параметр соответственно меньше, равен, или больше, чем второй параметр. Если два элемента оцениваются как равные, их последовательность в сортируемом массиве не определена. int abs(int j); Вычисляет абсолютное значение целого числа j. Если результат не может быть представлен, то поведение не определено. Функция abs возвращает абсолютное значение. div t div(int numer, int denom); Вычисляет целое частное quot и остаток от деления rem делимого numer на делитель denom. Если деление нельзя выполнить точно, в качестве значения частного выбирается ближайшее целое число, не превосходящее значения алгебраического частного. Если результат quot не может быть представлен, то поведение функции не определено; иначе выражение quot * denom -t- rem должно давать значение numer. Функция div возвращает структуру типа div t, включающую в себя частное и остаток. Структура должна содержать следующие элементы в любом порядке: int quot; /* частное */ int rem; /* остаток */ long int labs(long int j); Функция, аналогичная функции abs за исключением того, что параметр и возвращаемое значение имеют тип long int. ldiv t Idiv(long int numer, long int denom); Аналог функции div за исключением того, что параметры и все члены возвращаемой структуре типа ldiv t имеют тип long int. int mblen(const char *s, size t n); Если s не является нулевым указателем, то функция mblen определяет число байтов в многобайтовом символе, на который указывает s. Если s - нулевой указатель, то функция mblen возвращает отличный от нуля результат или нуль в зависимости от того, является или не является кодировка многобайтового символа зависящей от состояния. Если s - не нулевой указатель, функция mblen возвращает либо О (если s указывает на нулевой символ), либо количество байтов в многобайтовом символе (если следующие п или меньшее число байтов образуют допустимый многобайтовый символ), либо возвращает -1 (если указанные байты не образуют допустимый многобайтовый символ). int mbtowc(wchar t *pwc, const char *s, size t n); Если значение s не равно нулевому указателю, функция mbtowc определяет число байтов в многобайтовом символе, на который ссылается s. Затем она определяет код для значения типа wchar t, соответствующего указанному многобайтовому символу. (Значение кода, соответствующего нулевому символу, равно нулю.) Если многобайтовый символ имеет допустимое значение и pwc не является нулевым указателем, функция mbtowc помещает полученный код в объект, на который указывает pwc. Исследуется не более, чем п байтов массива, указанного параметром s. Если S является нулевым указателем, функция mbtowc возвращает результат отличный от нуля или нуль в зависимости от того, зависит или не зависит кодировка многобайтового символа от состояния. Если s не является нулевым указателем, то функция mblen возвращает либо О (если s указывает на нулевой символ), либо количество байтов в преобразуемом многобайтовом символе (если следующие п или меньшее количество байтов образуют допустимый многобайтовый символ), либо возвращает -1 (если указанные байты не образуют допустимый многобайтовый символ). В любом случае возвращаемое значение не может быть большим, чем п или значение макроса MB CUR MAX. int wctomb(char *s, wchar t wchar); Функция wctomb определяет необходимое количество байтов (с учетом любых изменений состояния) для представления многобайтового символа, соответствующего коду, значение которого находится в wchar. Многобайтовый символ помещается в символьный массив, на который указывает s (если s - не нулевой указатель). В массив помещается максимум MB CUR MAX символов. Если результирующее значение wchar - нуль, то функция wctomb не изменяет начальное состояние сдвига. Если значение s - нулевой указатель, функция wctomb возвращает результат отличный от нуля или нуль, если кодировка многобайтового символа соответственно зависит или не зависит от состояния. Если s - не нулевой указатель, функция wctomb возвращает количество байтов в многобайтовом символе, соответствующем значению wchar, или значение -1 (если значение wchar не является допустимым многобайтовым символом). В любом случае возвращаемое значение не может быть большим, чем значение макроса MB CUR MAX. size t mbstowcs(wchar t *pwcs, const char *s, size t n); Функция mbstowcs выполняет преобразование последовательности многобайтовых символов с начальным состоянием из массива, на который указывает S, в последовательность соответствующих кодов символов и помещает не более п кодов в массив, на который ссылается pwcs. Многобайтовые символы, которые следуют за нулевым символом (преобразуемым в код со значением нуль), не рассматриваются и не преобразовываются. Преобразование многобайтовых символов выполняется так же, как и при вызове функции mbtowc, за исключением того, что состояние сдвига функции mbtowc не влияет. Изменяются не более чем п элементов массива pwcs. Результат копирования перекрывающихся объектов не определен. Если встречается недопустимый многобайтовый символ, функция mbstowcs возвращает значение (size t) -1. В противном случае функция mbstowcs возвращает число преобразованных элементов массива, не включая завершающий нулевой символ, если он имеется. size t wGstombs(char *s, const wchar t *pwcs, size t n); Функция wcstombs выполняет преобразование последовательности кодов многобайтовых символов, на которую указывает параметр pwcs, в последовательность многобайтовых символов с начальным состоянием и помещает результат преобразования в массив, на который указывает s; преобразование прекращается, как только суммарное количество байтов многобайтовых символов превысит значение п или встретится нулевой символ. Преобразование кодов выполняется как при вызове функции wctomb за исключением того, что состояние сдвига функции wctomb не влияет. Изменяются значения не более чем п элементов массива s. Результат копирования перекрывающихся объектов не определен. Если встречается код, который не соответствует допустимому многобайтовому символу, функция wcstombs возвращает значение (size t) -1. В противном случае, функция wcstombs возвращает число преобразованных байтов, не включая завершающий нулевой символ, если он имеется. А.12. Обработка строк <string.h> NULL Константа нулевого указателя, зависящая от используемой системы. size t Целый без знака тип результата операции sizeof. void *memcpy(void *sl, const void *s2, size t n); Функция копирует n символов из объекта, указанного параметром s2, в объект, на который указывает si. При копировании перекрывающихся объектов поведение функции не определено. Функция memcpy возвращает значение si. void *memmove(void *sl, const void *s2, size t n); Функция копирует n символов из объекта, указанного параметром s2, в объект, на который указывает si. Копирование происходит так, как будто п символов из объекта s2 сначала копируются во временный массив из п символов, не перекрывающийся с массивами, на которые ссылаются параметры si и s2, а затем п символов из этого временного массива копируются в объект, на который указывает si. Функция memmove возвращает значение si. char *strcpy(char *sl, const char *s2); Функция strcpy копирует строку, указанную параметром s2 (включая завершающий нулевой символ), в массив, на который указывает si. При копировании перекрывающихся объектов поведение функции не определено. Функция strcpy возвращает значение si.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |