Функции стандартной библиотеки

Любая программа на языке С содержит обращения к стандартной библиотеке, в которой находятся определения типов, констант функций и макросов. Чтобы использовать их в программе, требуется с помощью директивы препроцессора #include включить в исходный текст программы заголовочные файлы, в которых находятся соответствующие объявления. Сами библиотечные функции хранятся в скомпилированном виде и подключаются к программе на этапе компоновки.

Функции библиотеки можно разбить на группы по их назначению: ввод/вывод, обработка строк, проверка символов, математические функции, преобразование чисел, работа с динамической памятью и др.

В заголовочном файле stdio.h содержатся в частности описания следующих стандартных функций, связанных с вводом/выводом:

printf(...) – выполняет форматный вывод данных на экран (возвращает количество напечатанных символов);

puts(s) – выводит на экран строку символов, задаваемую указателем s (возвращает s);

putchar(c) – выводит символ c на экран (возвращает c);

scanf(...) – выполняет форматный ввод данных с клавиатуры (возвращает число введенных элементов данных);

gets(s) – вводит на экран строку символов, задаваемую указателем s (возвращает s);

getchar() – возвращает следующий символ ввода или, если обнаружен конец файла, константу EOF;

fflush(stdin) – очистка буфера ввода stdin от лишних данных, если они есть;

fopen(...) – открывает файл с заданным именем и заданной операцией (возвращает указатель на файл);

fscanf(fp, ...) – выполняет форматный ввод данных из файла (возвращает число введенных элементов данных);

fprintf(fp,...) – выполняет форматный вывод данных в файл (возвращает количество выведенных символов);

fclose(fp) – закрывает файл, на который указывает fp (возвращает нуль или EOF в случае ошибки);

rewind(fp) – позиционирует указатель файла fp на начало файла (ничего не возвращает);

fgets(s,n,fp) – читает не более n-1 символов из файла по указателю fp в строку символов s (возвращает s);

fputs(s,fp) – записывает строку символов s в файл по указателю fp (возвращает s);

. . .

В заголовочном файле string.h содержатся в частности описания следующих стандартных функций для работы со строками символов (стрингами):

strcat(s,t) – добавляет t в конец s;

strncat(s,t,n) – добавляет n символов t в конец s;

strcmp(s,t) – возвращает отрицательное число, нуль или положительное число для s < t, s == t, s > t соответственно;

strncmp(s,t,n) – делает то же, что и strcmp, но количество сравниваемых символов не может превышать n;

strcpy(s,t) – копирует t в s;

strncpy(s,t,n) – копирует не более n символов t в s;

strlen(s) – возвращает длину s;

strchr(s,c) – возвращает указатель на первое появление символа c в s или, если c нет в s, константу NULL;

strrchr(s,c) – возвращает указатель на последнее появление символа c в s или, если c нет в s, константу NULL;

strstr(s,t) – возвращает указатель на первое появление подстроки t в s или константу NULL в противном случае;

. . .

В заголовочном файле ctype.h содержатся описания следующих стандартных функций для проверки символов. Они возвращают ненулевое значение (истина), когда аргумент c типа char удовлетворяет описанному условию или принадлежит указанному классу символов, и нуль (ложь) в противном случае.

isdigit(c) – десятичная цифра;

isxdigit(c) – шестнадцатиричная цифра;

isalpha(c) – буква;

isupper(c) – буква верхнего регистра;

islower(c) – буква нижнего регистра;

isalnum(c) – буква или десятичная цифра;

isspace(c) – пробел, табуляция, новая строка, новая страница;

isgraph(c) – печатаемый символ кроме пробела;

isprint(c) – печатаемый символ включая пробел;

ispunct(c) – печатаемый символ кроме пробела, буквы или цифры;

iscntrl(c) – управляющий символ.

Помимо перечисленных есть две функции, приводящие буквы к одному из регистров:

tolower(c) – возвращает букву на нижнем регистре;

toupper(c) – возвращает букву на верхнем регистре.

В заголовочном файле math.h содержатся в частности описания следующих стандартных математических функций (аргумент х и возвращаемое значение имеют тип double):

sin(x) – возвращает синус х;

cos(x) – возвращает косинус х;

tan(x) – возвращает тангенс х;

asin(x) – возвращает арксинус х;

acos(x) – возвращает арккосинус х;

atan(x) – возвращает арктангенс х;

sinh(x) – возвращает гиперболический синус х;

cosh(x) – возвращает гиперболический косинус х;

tanh(x) – возвращает гиперболический тангенс х;

exp(x) – возвращает е в степени х (экспоненциальная функция);

log(x) – возвращает натуральный логарифм х;

log10(x) – возвращает десятичный логарифм х;

pow(x,y) – возвращает х в степени у;

sqrt(x) – возвращает корень квадратный из х;

ceil(x) – возвращает наименьшее целое, больше или равное x;

floor(x) – возвращает набольшее целое, меньше или равное x;

fabs(x) – возвращает абсолютное значение х;

. . .

В заголовочном файле stdlib.h содержатся в частности описания следующих стандартных функций для преобразования чисел, запроса памяти и других задач:

atof(s) – переводит стринг в число типа double;

atoi(s) – переводит стринг в число типа int;

atol(s) – переводит стринг в число типа long;

rand() – выдает псевдослучайное число в диапазоне от 0 до RAND_MAX = 32767;

srand(seed) – устанавливает seed в качестве начального значения (затравки) последовательности псевдослучайных чисел (вначале seed = 1);

malloc(size) – возвращает указатель на место в памяти для объекта размера size или, при невозможности, константу NULL;

free(p) – освобождает область памяти, на которую указывает указатель р;

exit(status) – вызывает завершение программы: для нормального завершения переменной status нужно присвоить значение EXIT_SUCCESS, в случае ошибки – EXIT_FAILURE;

system(s) – передает стринг s операционной среде для выполнения;

. . .

В заголовочном файле time.h содержатся в частности описания следующих стандартных типов и функций, связанных с датой и временем.

Стандартные типы данных:

time_t – имеет тот же диапазон, что и базовый тип long и предназначен для хранения календарного времени в форме, возврвщаемой функцией time(tp);

struct tm {

tm_sec //секунды от начала минуты (0, 59)

tm_min //минуты от начала часа (0, 59)

tm_hour //часы от полуночи (0, 23)

tm_mday //число месяца (1, 31)

tm_mon //месяцы после января (0, 11)

tm_year //годы после 1900

tm_wday //дни после воскресенья (0, 6)

tm_yday //дни после 1 января (0, 365)

tm_isdst //флаг светлого времени

};

Стандартные функции:

clock() – возвращает время в миллисекундах, фиксируемое процессором от начала счета программы. Для перевода в секунды нужно применить формулу: clock()/CLOCKS_PER_SEC;

time(tp) – возвращает текущее календарное время. Если указатель tp (на переменную типа time_t) не NULL, то возвращаемое значение записывается и в *tp;

ctime(tp) – преобразует календарное время в строку;

difftime(t1,t2) – возвращает разницу времен t1 и t2;

localtime(tp) – возвращает указатель на структуру tm, инициализированную на основе календарного времени;

. . .

В заголовочном файле graphics.h содержатся описания стандартных функций, связанных с отображением на экране графической информации: точек, линий, прямоугольников, дуг, эллипсов и др. (более 50 функций, которые здесь не приводятся).

Наши рекомендации