Стандарт определяет, что функция
С помощью
/* getline: читает строку, возвращает ее длину */
int getline(char *line, int max)
{
if (fgets(line, max, stdin) == NULL)
return 0;
else
return strlen(line);
}
Упражнение 7.6
. Напишите программу, сравнивающую два файла и печатающую первую строку, в которой они различаются.Упражнение 7.7
. Модифицируйте программу поиска по образцу из главы 5 таким образом, чтобы она брала текст из множества именованных файлов, а если имен файлов в аргументах нет, то из стандартного ввода. Будет ли печататься имя файла, в котором найдена подходящая строка?Упражнение 7.8
. Напишите программу, печатающую несколько файлов. Каждый файл должен начинаться с новой страницы, предваряться заголовком и иметь свою нумерацию страниц.7.8 Другие библиотечные функции
В стандартной библиотеке представлен широкий спектр различных функций. Настоящий параграф содержит краткий обзор наиболее полезных из них. Более подробно эти и другие функции описаны в приложении B.
7.8.1 Операции со строками
Мы уже упоминали функции
strcat(s,t)
- приписываетstrncat(s,t,n)
- приписываетstrcmp(s,t)
- возвращает отрицательное число, нуль или положительное число дляstrncmp(s,t,n)
- делает то же, что иstrcpy(s,t)
- копируетstrncpy(s,t,n)
- копирует не болееstrlen(s)
- возвращает длинуstrchr(s,c)
- возвращает указатель на первое появление символаstrrchr(s,c)
- возвращает указатель на последнее появление символа7.8.2 Анализ класса символов и преобразование символов
Несколько функций из библиотеки ‹ctype.h› выполняют проверки и преобразование символов. Далее, до конца пункта, переменная
isalpha(c)
- не нуль, еслиisupper(c)
- не нуль, еслиislower(c)
- не нуль, если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)