isdigit(c) - не нуль, если
isalnum(c) - не нуль, если или
isspace(c) - не нуль, если
toupper(c) - возвращает
tolower(c) - возвращает
7.8.3 Функция ungetc
В стандартной библиотеке содержится более ограниченная версия функции
int ungetc(int с, FILE *fp)
отправляет символ
7.8.4 Исполнение команд операционной системы
Функция system(char *s) выполняет команду системы, содержащуюся в строке
Содержимое
system("date");
вызовет программу
7.8.5 Управление памятью
Функции malloc и calloc динамически запрашивают блоки свободной памяти. Функция
void *malloc(size_t n)
возвращает указатель на
void *calloc(size_t n, size_t size)
возвращает указатель на область, достаточную для хранения массива из
Указатель, возвращаемый функциями
int *ip;
ip = (int *) calloc(n, sizeof(int));
Функция free(p) освобождает область памяти, на которую указывает
Нельзя также использовать те области памяти, которые уже освобождены. Следующий пример демонстрирует типичную ошибку в цикле, освобождающем элементы списка.
for (p = head; p != NULL; p = p-›next) /* НЕВЕРНО */
free(p);
Правильным будет, если вы до освобождения сохраните то, что вам потребуется, как в следующем цикле:
for (p = head; p != NULL; p = q) {
q = p-›next;
free(p);
}
В параграфе 8.7 мы рассмотрим реализацию программы управления памятью вроде
7.8.6 Математические функции
В ‹math.h› описано более двадцати математических функций. Здесь же приведены наиболее употребительные. Каждая из них имеет один или два аргумента типа
sin(x) - синус x, x в радианах
cos(x) - косинус x, x в радианах
atan2(y,x) - арктангенс y/x, y и x в радианах
exp(x) - экспоненциальная функция e в степени x
log(x) - натуральный (по основанию e) логарифм x (x›0)
log10(x) - обычный (по основанию 10) логарифм x (x›0)
pow(x,y) - x в степени y
sqrt(x) - корень квадратный x (x › 0)
fabs(x) - абсолютное значение x
7.8.7 Генератор случайных чисел
Функция rand() вычисляет последовательность псевдослучайных целых в диапазоне от нуля до значения, заданного именованной константой RAND_MAX, которая определена в ‹stdlib.h›. Привести случайные числа к значениям с плавающей точкой, большим или равным 0 и меньшим 1, можно по формуле
#define frand() ((double) rand() / (RAND_MAX+1.0))
(Если в вашей библиотеке уже есть функция для получения случайных чисел с плавающей точкой, вполне возможно, что ее статистические характеристики лучше указанной.)