Язык Си | страница 38
/* непринужденный разговор */
# 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( ).
СИМВОЛЬНЫЕ СТРОКИ - ВВЕДЕНИЕ
"Символьная строка" - это последовательность, состоящая из одного или более символов В качестве примера рассмотрим следующую строку:
"Строки изливались прямо из сердца!"
Кавычки не являются частью строки. Они вводятся только для того, чтобы отметить ее начало и конец, т.е. играют ту же роль, что и апострофы в случае одиночного символа.
В языке Си нет специального типа, который можно было бы использовать для описания строк Вместо этого строки представля ются в виде "массива" элементов типа char. Это означает, что символы в строке можно представить себе расположенными в со седних ячейках памяти - по одному символу в ячейке (рис. 41).
РИС. 4. 1. Строка как массив ячеек
Необходимо отметить, что на рисунке последним элементом массива является символ