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

We use cookies. Read the Privacy and Cookie Policy

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

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

/* непринужденный разговор */

# define DENSITY 62 4  /* плотность тела человека в фунтах на кубический фут */

main( )  /* любопытствующая программа*/

{

  float weight, volume;

  int size, letters;

  char name [40];   /* или попробуйте "static char name [40], */

  printf(" Привет! Как вас зовут? " );

  scanf(" %s" , name);

  printf("%s,  Каков ваш вес в фунтах? ", name);

  scani("%f", &weight);

  size = sizeof name;

  letters = strlen (name);

  volume = weight/DENSITY;

  printf(" Прекрасно, %s, ваш объем %2 2f кубических фута. ", name, volume);

  printf(" Кроме того, ваше имя состоит из %d букв, ", letters);

  printf(" и для его размещения в памяти у нас есть %d байт. ", size);

}

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

Привет ! Как вас зовут?

Анжелика

Анжелика  Каков ваш вес в фунтах?

102,5

Прекрасно, AНЖЕЛИКА ваш объем 1,64 кубических фута

Кроме того, ваше имя состоит из 8 букв

и для его размещения в памяти у нас есть 40 байт

Перечислим основные новые черты этой программы:

     1. Мы использовали "массив" для хранения "символьной строки" - в данном случае для некоторого имени.

     2. При вводе и выводе строки была использована "спецификация преобразования" %s.

     3. Для определения символической константы DENSITY был использован препроцессор языка Си.

     4. Для нахождения длины строки была использована функция strlen( ).