Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное

Тут можно читать онлайн Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Невский Диалект, год 2001. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Язык программирования Си. Издание 3-е, исправленное
  • Автор:
  • Жанр:
  • Издательство:
    Невский Диалект
  • Год:
    2001
  • Город:
    Санкт-Петербург
  • ISBN:
    0-13-110362-8
  • Рейтинг:
    4.11/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное краткое содержание

Язык программирования Си. Издание 3-е, исправленное - описание и краткое содержание, автор Брайан Керниган, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга широко известных авторов, разработчиков языка Си, переработанная и дополненная с учетом стандарта ANSI для языка Си, 2-е английское издание которой вышло в 1988 году, давно стала классикой для всех изучающих и/или использующих как Си, так и Си++. Русский перевод этой книги впервые был выпущен изд- вом "Финансы и статистика" в 1992 г. и с тех пор пользуется неизменным спросом читателей.

Для настоящего третьего русского издания перевод заново сверен с оригиналом, в него внесены некоторые поправки, учитывающие устоявшиеся за прошедшие годы изменения в терминологии, а так же учтены замечания, размещенные автором на странице http://cm.bell-labs.com/cm/cs/cbook/2ediffs.html.

Для программистов, преподавателей и студентов.

Издание подготовлено при участии издательства "Финансы и статистика"

Язык программирования Си. Издание 3-е, исправленное - читать онлайн бесплатно полную версию (весь текст целиком)

Язык программирования Си. Издание 3-е, исправленное - читать книгу онлайн бесплатно, автор Брайан Керниган
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

int feof(FILE *stream);

feofвозвращает ненулевое значение, если для потока stream установлен индикатор конца файла.

int ferror(FILE *stream);

ferrorвозвращает ненулевое значение, если для потока stream установлен индикатор ошибки.

void perror(const char *s);

perror(s) печатает s и зависимое от реализации сообщение об ошибке, соответствующее целому значению в errno , т. е. делает то же, что и обращение к функции fprintf вида

fprintf(stderr, "%s: %s\n", s, "сообщение об ошибке")

См. strerror в параграфе B3.

B2. Проверки класса символа: ‹ctype.h›

Заголовочный файл объявляет функции, предназначенные для проверок символов. Аргумент каждой из них имеет тип int и должен либо представлять собой EOF, либо быть значением unsigned char , приведенным к int ; возвращаемое значение тоже имеет тип int . Функции возвращают ненулевое значение ("истина"), когда аргумент c удовлетворяет описанному условию или принадлежит указанному классу символов, и нуль в противном случае.

isalnum(c) isalpha(c) или isdigit(c) есть истина
isalpha(c) isupper(c) или islower(c) есть истина
iscntrl(c) управляющий символ
isdigit(c) десятичная цифра
isgraph(c) печатаемый символ кроме пробела
islower(c) буква нижнего регистра
isprint(c) печатаемый символ, включая пробел
ispunct(c) печатаемый символ кроме пробела, буквы или цифры
isspace(c) пробел, смена страницы, новая строка, возврат каретки, табуляция, вертикальная табуляция
isupper(c) буква верхнего регистра
isxdigit(c) шестнадцатеричная цифра

В наборе семибитовых ASCII-символов печатаемые символы находятся в диапазоне от 0x20(' ') до 0x7E('~'); управляющие символы - от 0( NUL ) до 0x1F( US ) и 0x7F ( DEL ).

Помимо перечисленных есть две функции, приводящие буквы к одному из регистров:

int tolower(int c) – переводит c на нижний регистр;

int toupper(int c) - переводит c на верхний регистр.

Если c - буква на верхнем регистре, то tolower (c) выдаст эту букву на нижнем регистре; в противном случае она вернет c . Если c - буква на нижнем регистре, то toupper (c) выдаст эту букву на верхнем регистре; в противном случае она вернет c .

B3. Функции, оперирующие со строками:

Имеются две группы функций, оперирующих со строками. Они определены в заголовочном файле . Имена функций первой группы начинаются с букв str , второй - с mem . Если копирование имеет дело с объектами, перекрывающимися по памяти, то, за исключением memmove, поведение функций не определено. Функции сравнения рассматривают аргументы как массивы элементов типа unsigned char .

В таблице на с. 321 переменные s и t принадлежат типу char * , cs и ct – типу const char * , n - типу size_t , а c - значение типа int , приведенное к типу char .

Последовательные вызовы strtokразбивают строку s на лексемы. Ограничителем лексемы служит любой символ из строки ct . В первом вызове указатель s не равен NULL. Функция находит в строке s первую лексему, состоящую из символов, не входящих в ct ; ее работа заканчивается тем, что поверх следующего символа пишется '\0' и возвращается указатель на лексему. Каждый последующий вызов, в котором указатель s равен NULL, возвращает указатель на следующую лексему, которую функция будет искать сразу за концом предыдущей. Функция strtok возвращает NULL, если далее никакой лексемы не обнаружено. Параметр ct от вызова к вызову может варьироваться.

Здесь и ниже под такими выражениями как cscs меньше (больше) ct , если первый несовпавший элемент в cs арифметически меньше (больше) соответствующего элемента из ct .— Примеч. ред.

char * strcpy(s,ct) копирует строку ct в строку s , включая '\0'; возвращает s
char * strncpy(s,ct,n) копирует не более n символов строки ct в s ; возвращает s . Дополняет результат символами '\0', если символов в ct меньше n
char * strcat(s,ct) приписывает ct к s ; возвращает s
char * strncat(s,ct,n) приписывает не более n символов ct к s , завершая s символом '\0'; возвращает s
char strcmp(cs,st) сравнивает cs и ct ; возвращает <0, если cs0, если cs>ct ( I.B.: вообще-то, функция возвращает int )
char strncmp(cs,ct) сравнивает не более n символов cs и ct ; возвращает <0, если cs0, если cs>ct ( I.B.: тоже int должна возвращать )
char * strchr(cs,c) возвращает указатель на первое вхождение c в cs или, если такового не оказалось, NULL
char * strrchr(cs,c) возвращает указатель на последнее вхождение c в cs или, если такового не оказалось, NULL
size_t strspn(cs,ct) возвращает длину начального сегмента cs , состоящего из символов, входящих в строку ct
size_t strcspn(cs,ct) возвращает длину начального сегмента cs , состоящего из символов, не входящих в строку ct
char * strpbrk(cs,ct) возвращает указатель в cs на первый символ, который совпал с одним из символов, входящих в ct , или, если такового не оказалось, NULL
char * strstr(cs, ct) возвращает указатель на первое вхождение ct в cs или, если такового не оказалось, NULL
size_t strlen(cs) возвращает длину cs
char * strerror(n) возвращает указатель на зависящую от реализации строку, соответствующую номеру ошибки n
char * strtok(s, ct) strtok ищет в s лексему, ограниченную символами из ct ; более подробное описание этой функции см. ниже

Функции mem...предназначены для манипулирования с объектами как с массивами символов; их назначение - получить интерфейсы к эффективным программам. В приведенной ниже таблице s и t принадлежат типу void * ; cs и ct - типу const void * ; n - типу size_t ; а c имеет значение типа int , приведенное к типу char .

void * memcpy(s,ct, n) копирует n символов из ct в s и возвращает s
void * memmove(s,ct,n) делает то же самое, что и memcpy , но работает и в случае "перекрывающихся" объектов.
int memcmp(cs, ct, n) сравнивает первые n символов cs и ct ; выдает тот же результат, что и функция strcmp
void * memchr(cs, c, n) возвращает указатель на первое вхождение символа c в cs или, если среди первых n символов c не встретилось, NULL
void * memset(s, c, n) размещает символ c в первых n позициях строки s и возвращает s

B4. Математические функции:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Брайан Керниган читать все книги автора по порядку

Брайан Керниган - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык программирования Си. Издание 3-е, исправленное отзывы


Отзывы читателей о книге Язык программирования Си. Издание 3-е, исправленное, автор: Брайан Керниган. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x