Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015

Здесь есть возможность читать онлайн «Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Год выпуска: 0101, Издательство: Вильямс, Жанр: Старинная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Язык программирования C. Лекции и упражнения (6-е изд.) 2015: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Язык программирования C. Лекции и упражнения (6-е изд.) 2015», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Давайте рассмотрим короткую программу (листинг 11.1), которая иллюстрирует несколько способов представления строк.

Листинг 11.1. Программа strings1.с

Подобно printf функция puts принадлежит семейству функций вводавывода - фото 322

Подобно printf(), функция puts() принадлежит семейству функций ввода-вывода stdio.h. Она отображает только строки и, в отличие от printf(), автоматически добавляет к выводимой строке символ новой строки. Ниже показан вывод этой программы:

Вот несколько строк:

Я - старомодная символьная строковая константа.

Я являюсь строкой, хранящейся в массиве.

Что-то указывает на меня.

Я являюсь строфой, хранящейся в массиве.

Вместо того чтобы анализировать листинг 11.1 строка за строкой, мы примем другой подход. Первым делом мы рассмотрим способы определения строки в программе. Затем мы выясним, как осуществляется чтение строки в программе. И, наконец, мы исследуем методы для вывода строк.

Символьные строки и строковые функции 421

Определение строк в программе

Во время просмотра листинга 11.1 вы, скорее всего, заметили, что существует много способов определения строк. К основным методам относится использование строковых констант, массивов типа char и указателей на тип char. Программа должна обеспечить место для хранения строки, и эту тему мы также обсудим.

Символьные строковые литералы (строковые константы)

Строковый литерал, который также называют строковой константой, представляет собой произвольную последовательность символов, помещенную в двойные кавычки. Заключенные в кавычки символы, а также завершающий символ \0, который автоматически добавляется компилятором, хранятся в памяти как символьная строка. Таким образом, "Я - символьная строковая константа.", "Я являюсь строкой, хранящейся в массиве.", "Что-то указывает на меня." и "Вот несколько строк:"— все это строковые литералы.

Вспомните, что, начиная со стандарта ANSI С, выполняется конкатенация строковых литералов, если они отделены друг от друга ничем, кроме пробельных символов. Например, определение

char greeting[50] = "Здравствуйте, "" как вы себя" " чувствуете"

" сегодня?";

эквивалентно следующему определению:

char greeting[50] = "Здравствуйте, как вы себя чувствуете сегодня?";

Если вы хотите применить двойные кавычки в строке, предварите их обратной косой чертой:

printf("\"Беги, Спот, беги!\" - воскликнул Дик.\n");

Вывод будет таким:

"Беги, Спот, беги!" - воскликнул Дик.

Символьные строковые константы размещаются в статическом классе хранения, т.е. если вы используете строковую константу в функции, то эта строка сохраняется только однажды и существует на протяжении времени выполнения программы, даже если функция вызывается много раз. Вся фраза, заключенная в кавычки, действует в качестве указателя на место, где хранится строка. Это аналогично имени массива, которое трактуется как указатель на место размещения массива. Если сказанное верно, то какой вывод должна сгенерировать программа в листинге 11.2?

Листинг 11.2. Программа strptr.c

Формат s должен вывести строку Мы Формат р выводит адрес Таким образом - фото 323

Формат %s должен вывести строку Мы. Формат %р выводит адрес. Таким образом, если фраза " - " является адресом, то формат %р должен обеспечить вывод адреса первого символа в этой строке. (В реализациях, предшествующих стандарту ANSI С, может понадобиться заменить %р спецификатором %u или %lu.)

422 глава 11

Наконец, выражение * "космические бродяги" должно дать значение, на которое указывает адрес и которым будет первый символ строки "космические бродяги". Так ли это на самом деле? Взглянем на вывод:

Мы, 0xl00000f61, к

Массивы символьных строк и инициализация

Когда вы определяете массив символьных строк, то должны сообщить компилятору, сколько для него необходимо выделить памяти. Один из способов предусматривает указание размера массива, достаточного для хранения строки. Следующее объявление инициализирует массив ml символами заданной строки:

const char ml[40] = "Постарайтесь уложиться в одну строку.";

Ключевое слово const отражает намерение не изменять эту строку.

Показанная форма является сокращением для стандартной формы инициализации массива:

Обратите внимание на завершающий нулевой символ Без него вы получите - фото 324

Обратите внимание на завершающий нулевой символ. Без него вы получите символьный массив, а не строку.

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

Интервал:

Закладка:

Сделать

Похожие книги на «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»

Представляем Вашему вниманию похожие книги на «Язык программирования C. Лекции и упражнения (6-е изд.) 2015» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»

Обсуждение, отзывы о книге «Язык программирования C. Лекции и упражнения (6-е изд.) 2015» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x