4.
#include
#include
#define issign(c) (((c) == '-' || (c) == '+') ? (1) : (0)) atoi(s);
char *s;
{
int i = 0;
int n, sign;
while(isspace(s[i]))
i ++; /* пропуск пустого символа */
sign = 1;
if(issign(s[i])) /* установка необязательного знака */
sign = (s[i++] == '+') ? 1 : -1;
for(n = 0; isdigit(s[i]); i++)
n = 10*n + s[i] - '0';
return(sign * n);
}
5. Предположим, что wineявляется именем структуры. Эти операторы, надлежащим образом расположенные в программе, будут выполнять данную работу.
struct wine *ptrwine;
char *calloc( );
ptrwine = (struc wine *) calloc(100, sizcof(struct wine));
1. Напишите программу копирования файла, которая использует имена исходного файла файла и копируемого файла как аргументы командной строки.
2. Напишитe программу, которая будет принимать все файлы, заданные радом аргументов командной строки, и печатать их один за другим. Используйте argcдля создания цикла.
3. Модифицируйте вашу программу инвентаризации книг в гл. 14 так, чтобы информация, которую вы вводите, добавлялась в файл, названный mybooks.
4. Используйте gets( )и atoi( )для создания функции, эквивалентной нашей getint( )в гл. 10.
5. Перепишите нашу программу из гл. 7, считающую слова, используя макроопределения ctype.hи аргумент командной строки для обработки файла.
ПРИЛОЖЕНИЕ А. ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА
Если вы хотите больше узнать о языке Си и вообще о программировании, то найдете полезной следующую литературу:
Kernighan Brian W. and Ritchie Dennis M., The СProgramming Language , Prentice-Hall, 1978. (Имеется перевод: КЕРНИГАН Б., Ритчи Д. Язык программирования Си .- M.: Финансы и статистика, 1985.)
Первая и наиболее авторитетная книга по языку Си. (Заметим. что один из авторов этой книги Деннис Ритчи - создатель языка Си.) Практически она является официальным описанием языка и включает много интересных примеров. Однако авторы предполагают, что читатель знаком с системным программированием.
Feuer Alan R., The С Puzzle Hook , Prentice-Hall, 1982. (Имеется перевод: Фьюэр А. Задачи по языку Си. - M.: Финансы и статистика, 1985.)
Книга содержит большое количество программ, результат работы которых вы можете предсказать. Она дает хорошую возможность проверить и расширить ваши знания о языке Си. Книга включает ответы и пояснения.
Ritchie D. M., Johnson S. С., Lesk M. E., and Kernighan В. W., The СProgramming Language , The Bell System Technical Journal, Vol. 57, No. 6, July-August 1978.
В статье обсуждается история создания языка Си и дается обзор особенностей программирования с использованием этого языка.
BYTE , Vol. 8, No. 8, August 1983.
Этот выпуск журнала "Байт" посвящен языку Си. Он содержит статьи, где обсуждаются история его создания, концепции и применения. Проверяются и оцениваются двенадцать компиляторов языка Си для микропроцессоров. Включена также обширная современная библиография книг и статей по языку Си. Каждая книга и статья включает краткое содержание.
Kernighan Brian W. and Plauger P. J., The Elements of Programming Style (Second Edition) , McGraw-HiII, 1978.
В этом стройном классическом произведении используются примеры, взятые из других книг, для иллюстрации того, что нужно и что не нужно делать для однозначного и результативного программирования.
Kernighan Brian V. and Plauger P. J., Software Tools , Addison-Wesley, 1976.
В книге описывается несколько полезных программ и программных систем, причем делается упор на эффективное проектирование структур программ. Представлены описания языка RATFOR (рационализированного Фортрана) и одной из версий Паскаля. Так как создание языка RATFOR - это попытка сделать сходной работу языков Фортран и Си, он лучше всего подходит пользователям языка как для знакомства с ним.
Операционная система UNIX
Waite Mitchell, Martin Don and Praia Stephen , UNIX Primer Plus , Howard W. Sams and Company, Inc., 1983.
Эта книга - легко читаемое введение в операционную систему UNIX. В неe включены некоторые мощные расширения этой системы, реализованные в Калифорнийском университете (Беркли).
ПРИЛОЖЕНИЕ Б. КЛЮЧЕВЫЕ СЛОВА ЯЗЫКА СИ
Ключевые слова в языке являются словами, выражающими действия этого языка. Ключевые слова языка Си зарезервированы, т. е. вы не можете использовать их для других целей, таких как задание имени переменной.
Ключевые слова выполнения программы
Циклы
for while do
Принятие решения и выбор
Читать дальше