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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Резюме

В языке С строка — это последовательность значений типа char, завершающаяся нулевым символом, '\0' Строка может также храниться в символьном массиве. Кроме того, строка может быть представлена с помощью строковой константы, в которой символы кроме нулевого заключены в двойные кавычки. Нулевой символ предоставляется компилятором. Таким образом, строка "мир" сохраняется в памяти как последовательность из четырех символов: м, и, р и \0. Длина строки, измеренная посредством strlen(), не учитывает нулевой символ.

Строковые константы, также известные как строковые литералы, могут использоваться для инициализации символьных массивов. Размер массива должен быть, по меньшей мере, на единицу больше длины строки, чтобы можно было включить нулевой символ. Строковые константы также могут применяться для инициализации указателей на тип char.

Для идентификации обрабатываемой строки функции используют указатель на первый символ этой строки. Обычно соответствующим фактическим аргументом является имя массива, переменная типа указателя или строка в двойных кавычках. В каждой си туации передается адрес первого символа. В общем случае передача длины строки не обязательна, т.к. для обнаружения конца строки функция может применять завершающий нулевой символ.

Функция fgets() извлекает строку из ввода, а функции puts() и fputs() отображают строку вывода. Они входят в семейство функций stdio.h, как раньше было с теперь уже устаревшей и постепенно выводимой из употребления функцией gets().

Библиотека С содержит несколько функций обработки етрок. В стандарте ANSI С эти функции объявлены в файле string.li. Библиотека также имеет ряд функций обработки символов, которые объявлены в файле ctype.h.

474 Глава 11

Программе можно предоставить доступ к аргументам командной строки с помощью двух формальных аргументов функции main(). Первый аргумент, по традиции называемый argc, имеет тип int, и ему присваивается количество слов в командной строке. Второй аргумент, традиционно имеющий имя argv, представляет собой указатель на массив указателей на тип char. Каждый указатель на char ссылается на один из элементов командной строки, при этом argv[0] указывает на имя команды, argv[l] — на первый аргумент командной строки, argv [2] — на второй аргумент и т.д.

Функции atoi(), atol() и atof() преобразуют строковые представления чисел в значения типов int, long и double. Функции strtol(), strtoul() и strtod() преобразуют строковые представления чисел в формы типов long, unsigned long и double.

Вопросы для самоконтроля

Ответы на вопросы для самоконтроля приведены в приложении А.

1. Какая ошибка допущена в представленном объявлении символьной строки?

int main(void)

{

char name[] = {'Л', 'у', 'н', 'а'};

картинка 371

}

2. Что выведет следующая программа?

#include int main(void)

{

char note[] = "Увидимся завтра в кафе."; char *ptr;

ptr = note; puts (ptr); puts(++ptr); note[7] = ‘\0’; puts(note); puts(++ptr); return 0;

}

3. Что выведет следующая программа?

#include

#include int main(void)

{

char food[] = "Вкусно"; char *ptr;

ptr = food + strlen(food); while (--ptr >= food) puts (ptr); return 0;

}

4. Что выведет следующая программа?

#include

#include

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

int main(void)

{

char goldwyn[40] = "ovy я смог ";

char samuel[40] = "За всю дор";

const char * quote = "осилить лишь часть.";

strcat(goldwyn, quote); strcat(samuel, goldwyn); puts(samuel);

return 0;

}

5. Приведенные ниже вопросы позволят попрактиковаться со строками, циклами, указателями и их инкрементированием. Предположим, что имеется такое определение функции:

#include char *pr (char *str)

{

char *pc;

pc = str; while (*pc)

putchar(*pc++); do {

putchar(*—pc);

} while (pc - str); return (pc);

}

Взгляните на следующий вызов функции:

х = pr{"Хо Хо Хо!");

а. Что он выводит?

б. Какой тип должна иметь переменная х?

в. Какое значение получает переменная х?

г. Что означает выражение *—рс, и чем оно отличается от —*рс ?

д. Что будет выведено, если *—рс заменить выражением *рс—?

е. Для чего предназначены два выражения проверки в операторах while?

ж. Что произойдет, если функции pr() передать в качестве аргумента пустую строку?

з. Что придется сделать в вызывающей функции, чтобы pr() можно было использовать так, как показано выше?

6. Предположим, что имеется следующее объявление:

char sign = ‘$';

Сколько байтов памяти занимает переменная sign? Значение ‘$’? Значение "$"?

7. Что выведет следующая программа?

#include

#include

#define Ml "How are ya, sweetie? "

char М2[40] = "Beat the clock.";

char * М3 = "chat";

476 глава 11

int main(void)

{

char words[80];

printf(Ml); puts(Ml); puts(М2); puts(М2 + 1); strcpy(words,М2); strcat(words, " Win a toy."); puts(words); words [4] = '\0'; puts(words); while (*M3) puts(M3++); puts(--M3); puts(--М3);

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

Интервал:

Закладка:

Сделать

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

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


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

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

x