564 |
Программирование на языке Си |
П р о д о л ж е н и е
Функция |
|
Прототип и краткое описание действий |
sqrt |
double |
s q r t (double х); |
|
Возвращает положительное значение квадратного корня |
tan |
double |
tan (d o u b le x); |
|
Функция тангенса. Угол (аргумент) задается в радианах. |
tanh |
double tan h (d o u b le х); |
|
Возвращает значение гиперболического тангенса для х. |
Таблица П3.2
Функции и макросы проверки и преобразования символов (файл ctype.h)
Функция |
Прототип н краткое описание действий |
isalnum |
int isalnum(int c); |
|
Дает значение не нуль, если о - код буквы или цифры (А н- Z,а + |
|
z,0 + 9),и нуль - в противном случае. |
isalpha |
int isalpha(int с); |
|
Дает значение не нуль, если о - код буквы (А Z,а 4- z),и нуль - |
|
в противном случае. |
isascii |
int isascii (int с),‘ |
|
Дает значение не нуль, если с есть код ASCII, т.е. принимает зна |
|
чение от 0 до 127, в противном случае - нуль. |
iscntrl |
int iscntrl(int с); |
|
Дает значение не нуль, если с - управляющий символ с кодами |
|
0x00 + OxOlF или 0x7F, и нуль - впротивном случае. |
isdigit |
int isdigit(int с); |
|
Дает значение не нуль, если с - цифра (0 ч- 9 ) в коде ASCII, и |
|
нуль - в противном случае. |
isgraph |
int isgraph(int с); |
|
Дает значение не нуль, если с - видимый (изображаемый) символ |
|
с кодом (0x21 + 0х7Е), и нуль - в противном случае. |
islower |
int islower(int с); |
|
Дает значение не нуль, если с - код буквы на нижнем регистре (а |
|
-г- z),и нуль - в противном случае. |
|
|
|
|
П р о д о л ж е н и е |
Функция |
|
' Прототип и краткое описание действий |
isprint |
i n t |
i s p r i n t ( i n t |
с); |
|
|
Дает |
значение не нуль, если |
с - печатный символ с кодом |
|
(0x20 + 0х7Е), и нуль - в противном случае. |
ispunct |
i n t |
is p u n c t( in t |
с); |
|
|
Дает значение не нуль, если с - символ-разделитель (т.е. соответ |
|
ствует i s c n t r l или issp ace ) и нуль - в противном случае. |
isspace |
i n t |
is s p a c e ( in t |
с); |
|
|
Дает значение не нуль, если с - |
обобщенный пробел: пробел, |
|
символ табуляции, символ новой строки или новой страницы, |
|
символ возврата каретки (0x09 4-0x0D,0x20), и нуль-в про |
|
тивном случае. |
|
|
isupper |
i n t |
is u p p e r ( in t |
с); |
|
|
Дает значение не нуль, если с - код буквы на верхнем регистре |
|
(А+ Z), и нуль - в противном случае. |
isxdigit |
i n t |
i s x d i g i t ( i n t |
с); |
|
|
Дает значение не нуль, если с - код шестнадцатеричной цифры |
|
(0 + 9, А+ F, а + f ), и нуль - в противном случае. |
toascii |
i n t |
t o a s c i i ( i n t |
с) ; |
|
|
Преобразует целое число с в символ кода ASCII, обнуляя все би |
|
ты, кроме младших семи. Результат от 0 до 127. |
tolower |
i n t |
to lo w e r(in t |
с); |
|
|
Преобразует код буквы с к нижнему регистру, не буквенные ко |
|
ды не изменяются. |
|
|
toupper |
i n t |
to u p p e r(in t |
с); |
|
|
Преобразует код буквы с к верхнему регистру, не буквенные ко |
|
ды не изменяются. |
|
|
Таблица ПЗ.З
Функции ввода-вывода для стандартных потоков (файл stdio.li)
Функция |
Прототип и краткое описание действий |
getch |
i n t g e tc h (v o id ); |
|
Считывает один символ с клавиатуры без отображения на экране. |
568 |
Программирование на языке Си |
|
|
|
|
|
|
|
|
|
П р о д о л ж е н и е |
Функция |
|
|
Прототип и краткое описание действий |
|
strncmp |
i n t |
strn cm p (co n st |
ch ar |
* s t r l , |
c o n st |
ch ar * s tr2 , |
|
i n t |
k o l); |
|
|
|
|
|
|
|
|
Сравнивает части строк s t r l |
и s tr2 , |
причем рассматриваются |
|
первые |
k o l символов. Результат |
отрицателен, |
если s t r l |
< |
|
s tr2 ; |
равен нулю, если s t r l |
== |
s tr2 , |
и положителен, если |
|
s t r l |
> str2 . |
|
|
|
|
|
|
|
strncpy |
ch a r |
|
* strn cp y (char * sp , |
c o n st |
char * s i , |
i n t |
|
k o l); |
|
|
|
|
|
|
|
|
|
Копирует k o l символов строки s i в строку sp ("хвост" отбрасы |
|
вается или дополняется пробелами). |
|
|
|
|
|
strnicmp |
i n t |
strn ic m p (c h a r |
* s t r l , c o n st |
ch ar |
* s tr 2 , |
i n t |
|
k o l); |
|
|
|
|
|
|
|
|
|
Сравнивает не более k o l символов строки s t r l |
и строки s tr2 , |
|
не делая различия регистров (см. функцию strncm p ()). |
|
ch a r |
*s tr n s e t( c h a r |
* s tr , |
i n t c, i n t k o l); |
Заменяет первые k o l символов строки s t r символом с. |
char |
*strp b rk (c o n st |
char |
* s tr l,c o n s t char *str2) ; |
Ищет |
в строке s t r l первое появление любого из множества |
символов, входящих в строку str2 .
ch a r * s trrc h r(c o n s t ch ar * s tr , i n t c); Ищет в строке s t r последнее вхождение символа с.
c h a r * s tr s e t( c h a r * s tr , i n t с); Заполняет строку str заданным символом с.
|
|
|
|
|
strspn |
i n t |
s trs p n (c o n s t ch a r * s t r l , c o n st ch ar * s tr2 ); |
|
Определяет длину первого сегмента строки s t r l , содержащего |
|
только сймволы, из множества символов строки str2 . |
strstr |
char |
* s trs tr(c o n s t char * s tr l, |
const char * s tr 2 ) ; |
|
Ищет в строке s t r l подстроку s tr2 . Возвращает указатель на |
|
тот элемент в строке s t r l , с |
которого начинается подстрока |
|
s tr2 . |
|
|
strtod |
double s tr to d ( c o n s t ch ar |
* s tr , |
ch ar * *endptr); |
|
Преобразует символьную строку s t r в число двойной точности. |
Если e n d p tr не равен NULL, то * endptr возвращается как ука затель на символ, при достижении которого прекращеночтение строки s tr .
Прототип и краткое описание действий
ch ar * s trto k (c h a r * s t r l , c o n st ch a r * str2 );
Ищет в строке s t r l лексемы, выделенные символами из второй строки.
long s tr to l (const char * str, char **endptr, in t baz) ; Преобразует символьную строку s t r к значению "длинное чис ло" с основанием baz (2 £ baz < 36). Если e n d p tr не равен NOLL, то *en d p tr возвращается как указатель на символ, при достижении которого прекращено чтение строки s tr .
ch ar *s tru p r( c h a r * s tr);
Преобразует буквы нижнего регистра в строке s t r в буквы верх него регистра
ultoa |
char *ultoa(unsigned long v, char * s t r , i n t b a z ); |
|
Преобразует беззнаковое длинное целое v в строку s tr . |
Таблица П3.5
Функции для выделения и освобождения памяти (файлы alloc.h, stdlib.h)
Прототип и краткое описание действий
v o id * ca llo c (u n sig n ed n, unsigned m);
Возвращает указатель на начало области динамически распреде ленной памяти для размещения п элементов по, ш байт каждый. При неудачном завершении возвращает значение NULL.
unsigned |
c o r e le f t (void); - для схем распределения памя |
ти в Turbo С: tiny, small, medium. |
unsigned |
long c o r e le f t (void); - для других схем рас |
пределения памяти.
Возвращает значение объема неиспользованной памяти. Функция уникальна для Turbo С, где приняты упомянутые схемы распре деления памяти.
v o id f r e e (void *Ы );
Освобождает ранее выделенный блок динамически распределяе мой памяти с адресом первого байта Ы .
570 |
Программирование на языке Си |
|
П р о д о л ж е н и е |
Функция |
Прототип и краткое описание действий |
malloc |
void ‘malloc(unsigned s); |
|
Возвращает указатель на блок динамически распределяемой па |
|
мяти длиной s байт. При неудачном завершении возвращает зна |
|
чение NULL. |
realloc |
void ‘realloc(void *Ы, unsigned ns); |
|
Сохраняя содержимое, изменяет размер участка динамической |
|
памяти с адресом начала Ы , делая его равным ns (байт). Если |
|
Ы равен NULL, то функция выполняется как malloc 0 . При не |
|
удачном завершении возвращает значение NULL. |
Таблица П3.6
Функции для работы с терминалом в текстовом режиме (файл conio.ii)
Функция |
Прототип и краткое описание действий |
clreol |
void clreol(void); |
|
Стирает символы от позиции курсора до конца строки в тексто |
|
вом окне. |
clrscr |
void clrscr(void) ; |
|
Очищает экран. |
cgets |
char *cgets(char *str); |
|
Выводит на экран строку str. |
cprintf |
int cprintf(const char ‘format[, argument,...]); |
|
Выводит форматированную строку в текстовое окно, созданное |
|
функцией window (). |
cputs |
int cputs(char *str); |
|
Помещает в символьный массив str строку с клавиатуры (кон |
|
соли). |
cscanf |
int cscanf(const char ‘format[, address, ...]); |
|
Функция форматированного ввода, которая используется при |
|
работе с терминалом в текстовом режиме |
delline |
void delline(void); |
|
Удаляет строку в текстовом окне (где находится курсор). |
Приложение 3 |
|
|
571 |
|
|
|
|
П р о д о л ж е н и е |
Функция |
|
Прототип и краткое описание действий |
gotoxy |
v o id |
g o to x y (in t х, |
i n t у); |
|
Перемещает курсор в позицию текстового окна с координатами |
|
(х,у). |
|
|
|
highvideo |
v o id |
h ig h v id eo (v o id ); |
|
|
Повышает яркость символов, выводимых на экран после ее вы |
|
зова. |
|
|
|
movetext |
i n t |
m o v e te x t(in t |
x O ,in t |
y O ,in t x l , i n t y 2 ,in t |
|
x ,i n t y); |
|
|
|
Переносит текстовое окно в область экрана, правый верхний |
|
угол которой имеет координаты (х, у). Координаты угловых то |
|
чек окна - (хО, уО), (xl, yl). |
|
normvideo |
v o id |
norm video(void); |
|
|
Устанавливает нормальную яркость выводимых на экран симво |
|
лов. |
|
|
|
textattr |
v o id |
t e x t a t t r ( i n t |
n ew attr); |
|
Устанавливает атрибуты (фон, цвет) символов, выводимых на |
|
экран. |
|
|
|
textbackg |
v o id |
te x tb a c k g ro u n d (in t |
с); |
round |
|
|
|
|
textcolor
textmode
wherex
wherey
window
Устанавливает цвет фона по значению параметра с.
v o id te x tc o lo r ( in t с);
Устанавливает цвет символов по значению параметра с.
v o id te x tm o d e(in t m);
Переводит экран в текстовый режим по значению параметра т.
i n t w herex(void);
Возвращает значение горизонтальной координаты курсора.
i n t w herey(void);
Возвращает значение вертикальной координаты курсора.
v o id w indow (int x O ,in t y O ,in t x l , i n t y l); Создает текстовое окно по координатам угловых точек (хО, уО), (xl, yl).
Функции из табл. П3.6 поддерживаются только на IBM PC (в MS-DOS) и совместимых с ним компьютерах.
572 |
Программирование на языке Си |
Таблица П3.7
Специальные функции
|
|
|
|
|
|
|
|
|
Местона |
Функция |
|
|
Прототип и краткое описание действий |
|
хождение |
|
|
|
|
|
|
|
|
|
прототипа |
delay |
void delay(unsigned x); |
|
|
|
dos.h |
|
Приостанавливает выполнение программы на х мсек. |
|
getenv |
char *getenv(const char +name); |
|
stdlib.h |
|
Ищет в списке переменных среды имя, заданное па |
|
|
раметром паше. В случае нахождения возвращает |
|
|
указатель на строку, являющуюся значением этой |
|
|
переменной среды. |
|
|
|
|
|
kbhit |
int kbhit(void); |
|
|
|
|
conio.h |
|
Возвращает ненулевое целое, если в буфере клавиа |
|
|
туры присутствуют коды нажатия клавиш, в против |
|
|
ном случае - нулевое значение. |
|
|
|
|
memcmp |
int |
memcmp (const void |
*sl, |
const |
void |
mem.h |
|
*s2, |
|
unsigned n); |
|
|
|
|
|
|
Сравнивает посимвольно две области памяти si и s2 |
|
|
длиной п байт. Возвращает значение меньше нуля, |
|
|
если si < s2, нуль, если si |
== s2, и больше ну |
|
|
ля, если si > |
s2. |
|
|
|
|
mem.h |
memcpy |
void |
|
*memcpy (void |
*p, |
const void |
*i, |
|
unsigned n); |
|
|
|
|
|
|
Копирует блок длиной n байт йз области памяти i в |
|
|
область памяти р. |
|
|
|
|
|
memicmp |
int |
memicmp |
(const |
void |
*sl, |
const |
void |
mem. h |
|
*s2, unsigned n); |
|
|
|
|
|
|
Подобна memcmp, за тем исключением, что игнори |
|
|
руются различия между буквами верхнего и нижнего |
|
|
регистра. |
|
|
|
|
|
|
memmove void |
+memmove (void *dest, const void |
mem.h |
|
*src, |
int n); |
|
|
|
|
|
Копирует блок длиной n байтов из src в dest. Возвращает указатель dest.