Стандарт определяет, что функция
С помощью
/* 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)