Всё для программиста

Глава 4
Индекс материала
Глава 4
СИМВОЛЬНЫЕ СТРОКИ - ВВЕДЕНИЕ
Длина строки - функция strlen( )
КОНСТАНТЫ И ПРЕПРОЦЕССОР ЯЗЫКА Си
Язык Си - искусный фокусник: создание псевдоимен
ИЗУЧЕНИЕ И ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ printf( ) И scanf( )
Использование функции printf( )
Модификаторы спецификации преобразования, используемые в функции printf( )
Использование функции printf( ) для преобразования данных
Применение функции scanf( )
СОВЕТЫ ПО ПРИМЕНЕНИЮ
ЧТО ВЫ ДОЛЖНЫ БЫЛИ УЗНАТЬ В ЭТОЙ ГЛАВЕ
Все страницы

Символьные строки,
директива #define,
функции printf( ) и scanf( )

В этой главе мы продолжим нашу "игру" с данными покопаемся в вопросах, выходящих за пределы тех, которые были связаны с типами данных, и рассмотрим символьную строку Сначала опи шем важное средство языка - препроцессор Си - и узнаем, как задавать и использовать символические константы. Затем вновь об судим способы ввода и вывода данных, при этом более полно ис следуем возможности функций printf( ) и scanf( ). Ну, а теперь вы вероятно, ожидаете примера программы, который должен быть помещен в начале главы; мы не будем вас разочаровывать и приве дем его

/* непринужденный разговор */
# define DENSITY 62 4 /* плотность тела человека в фунтах на кубический фут */
main( ) /* любопытствующая программа*/
{
float weight, volume;
int size, letters;
char name [40]; /* или попробуйте "static char name [40], */
printf(" Привет! Как вас зовут?\n" );
scanf(" %s" , name);
printf("%s, Каков ваш вес в фунтах?\n", name);
scani("%f", &weight);
size = sizeof name;
letters = strlen (name);
volume = weight/DENSITY;
printf(" Прекрасно, %s, ваш объем %2 2f кубических фута.\n", name, volume);
printf(" Кроме того, ваше имя состоит из %d букв,\n", letters);
printf(" и для его размещения в памяти у нас есть %d байт.\n", size);
}

Результат работы программы "непринужденный разговор" может, например, выглядеть следующим образом:

Привет ! Как вас зовут?
Анжелика
Анжелика Каков ваш вес в фунтах?
102,5
Прекрасно, AНЖЕЛИКА ваш объем 1,64 кубических фута
Кроме того, ваше имя состоит из 8 букв
и для его размещения в памяти у нас есть 40 байт

Перечислим основные новые черты этой программы:
1. Мы использовали "массив" для хранения "символьной строки" - в данном случае для некоторого имени.
2. При вводе и выводе строки была использована "спецификация преобразования" %s.
3. Для определения символической константы DENSITY был использован препроцессор языка Си.
4. Для нахождения длины строки была использована функция strlen( ).

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