Несколько разнообразных функций
Стандартная библиотека предоставляет множество разнообразных функций, некоторые из которых оказываются особенно полезными. Мы уже упоминали функции для работы со строками: strlen, strcpy, strcat и strcmp. Вот некоторые другие.
9.9.1. Проверка вида символов и преобразования. Некоторые макросы выполняют проверку символов и преобразования. Возврат ненулевого значения – это true (истина), а ненулевого значения – false (ложь). Например, для переменой int n справедливо: ; ; ; ; ; . Кроме того, существуют две полезные функции: int n = oupper(c) – преобразует букву c в прописную; int n = olower(c) – преобразует букву c в строчную. Такие функции мы уже научились создавать сами.
9.9.2. Функция ungetc . Стандартная библиотека содержит довольно ограниченную версию функции ungetch, написанной нами в главе 5 она называется ungetch. В результате обращения: ungetc(c,fp) символьная переменная c возвращается в файл fp. Позволяется возвращать в каждый файл только один символ. Функция ungetc может быть использована в любой из функций ввода и с макросами типа scanf, getc или getchar.
9.9.3. Обращение к системе. Функция system(s) выполняет команду, содержащуюся в символьной строке s, и затем возобновляет выполнение текущей программы. Содержимое s сильно зависит от используемой операционной системы. В качестве тривиального примера, укажем, что на системе U nix строка: system("date"); приводит к выполнению программы date, которая печатает дату и время дня. 9.9.4. Управление памятью. Функция calloc весьма сходна с функцией alloc, использованной нами в предыдущих главах. В результате обращения: calloc(n, sizeof(objcct)) возвращается либо указатель пространства, достаточного для размещения n объектов указанного размера, либо NULL, если запрос не может быть удовлетворен. Отводимая память инициализируется нулевыми значениями. Указатель обладает нужным для рассматриваемых объектов выравниванием, но ему следует приписывать соответствующий тип, как в: char *calloc(); int *ip; ip=(int*) calloc(n,sizeof(int));
Функция cfree(p) освобождает пространство, на которое указывает p, причем указатель p певоначально должен быть получен в результате обращения к calloc. Здесь нет никаких ограничений на порядок освобождения пространства, но будет неприятнейшей ошибкой освободить что-нибудь, что не было получено обращением к calloc. Данные функции управления памятью есть в составе операционной системы. Однако, язык C++ предоставляет удобный оператор new, который обеспечивает то же самое. Реализация программы распределения памяти, подобной calloc, в которой размещенные блоки могут освобождаться в произвольном порядке, продемонстрирована в главе 8 с помощью операторов new и sizeof. ЛИТЕРАТУРА
1. Болски М.И. Язык программирования Си: Справочник. – М.: Радио и связь, 2000. – 96 с. 2. Керниган Б., Пайк Р. Практика программирования. – СПб.: Невский диалект, 2001. – 381 с. 3. Керниган Б., Ритчи Д. Язык программирования Си. – СПб.: Невский диалект, 2001 + М.: Финансы и статистика, 2001. – 352 с. 4. Кнут Д. Искусство программирования. Том 1. – М.: Статистика, 1975. – 568 с. 5. Круглински Д. Дж., Уингоу С., Шеферд Дж. Программирование на Microsoft Visual С++ 6.0 для профессионалов. – СПб.: Питер; М.: Русская редакция, 2001. – 864 с. 6. Крупник А.Б. Изучаем Си. – СПб.: Питер, 2002. – 256 с. 7. Крупник А.Б. Изучаем С++. – СПб.: Питер, 2002. – 251 с. 8. Шилдт Г. Программирование на С и С++ для Windows. – К.: Торгово-издательское бюро BHV, 2001. – 408 с.
* См. А. Крупник «Изучаем C++». – Глава 1. Что такое программирование. – СПб.: Питер, 2003. – 5 Слова «ячейка» и «байт» обозначают одно и то же – восемь последовательных битов. * Именно в честь Августы Ады дано название одному из современных языком программирования: АДА * Определение деления с остатком в этом случае содержится в доказательстве, которое нужно выполнить в упражнении 1.15. *) Конечно, «оператор» может состоять из нескольких операторов – блока, заключенного в фигурные скобки * См.: Емельянов А.А. Власова Е.А., Дума Р.В. Имитационное моделирование экономических процессов. – М.: Финансы и статистика, 2003. – 368 с. * Эта особенность есть только в Unix
Популярное: Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (227)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |