Описать переменную x целого типа вывести на экран монитора
Уже пора начать составлять программы, результат которых виден на экране.
Как я писал ранее, практически любая программа состоит из 4 частей:
1. Блок объявления данных.
2. Блок ввода исходных данных.
3. Блок обработки данных.
4. Блок вывода информации на экран.
Для программистов существует некая информационная культура. Ее суть заключается в том, что пользователю наших программ должно быть понятно, какие исходные данные требуются от него для ввода и какие результаты он получает в результате выполнения программ.
mv2.jpg/v1/fill/w_129,h_183,al_c,usm_0.66_1.00_0.01,blur_3/%D0%BF%D1%80%D0%BE%D1%84%D0%B5%D1%81%D1%81%D0%BE%D1%80-%D0%B2-%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B5%D0%BC-%D0%B6%D0%B5%D1%81%D1%82%D0%B5-3677322.jpg" alt="профессор-в-приветствующем-жесте-3677322" width="" height="" />
mv2.jpg/v1/fill/w_71,h_70,al_c,usm_0.66_1.00_0.01,blur_3/1477482_1.jpg" alt="1477482_1.jpg" width="" height="" />
mv2.jpg/v1/fill/w_70,h_69,al_c,usm_0.66_1.00_0.01,blur_3/4212103_1.jpg" alt="4212103_1.jpg" width="" height="" />
= команда присваивания в языке C++
:= оператор присваивания в Pascal
cin>>x; // в переменную x записывает некое значение, введенное с клавиатуры.
cin>>x>>y>>z; // вводит несколько переменных.
cin>>a>>; cin>>b; - будет ждать ввода значений переменных а и b так:
5<Enter>
6<Enter>
При выполнении пользователь набирает на клавиатуре соответствующую последовательность значений, разделяя их пробелами и программа будет ждать ввода значений переменных а и b так:
5 6<Enter>
Операции ввода/вывода в языке Си организованы посредством библиотечных функций (причем их довольно много). Самый простой механизм ввода - чтение по одному символу из стандартного входного потока (с клавиатуры) с помощью функции getchar( ).
int getchar(void); Здесь определен тип единственного аргумента (void) и тип возвращаемого функцией значения (int) .Оператор вида:
х = getchar( ); присваивает переменной х очередной вводимый символ. Переменная х должна иметь символьный или целый тип.
Другая функция - putchar(х) выдает значение переменной x в стандартный выходной поток (на экран дисплея).
Заметим, что для функции getchar( ) после выбора символа необходимо нажать клавишу <Enter>. Иногда это создает определенные неудобства.
Функции getch( ) и getche( ) устраняют их. Они имеют следующие прототипы:
Важно. Количество форматов в строке должно быть равно количеству адресов переменных в списке. Кроме того, тип переменных должен совпадать с указанным.
В языке программирования Паскаль за ввод данных отвечает стандартные процедуры: ожидания ввода read, readLn - [читать, читать строку], а за вывод на экран отвечает оператор write - [пиши, пиши строку].
read; - процедура без параметров ждет нажатия клавиши <Enter> и переводит курсор на следующую строчку.
read(переменная [список переменных через запятую]); - процедура может считывать любое количество значений переменных, идентификаторы которых перечислены в круглых скобках через запятую и присваивать введенное .
readLn(переменная [список переменных через запятую]);
Readln(a); Readln(b); - будет ждать ввода значений переменных а и b так:
5<Enter>
6<Enter>
Readln(a,b); - При выполнении этого оператора пользователь набирает на клавиатуре соответствующую последовательность значений, разделяя их пробелами и программа будет ждать ввода значений переменных а и b так:
5 6<Enter>
"Есть еще команды для форматированного
ввода/вывода в стиле Си " scanf("%s", address); printf("%s\n",address);
Основной задачей программирования является обработка информации, поэтому любой язык программирования имеет средства для ввода и вывода информации. В языке Си нет операторов ввода-вывода.
Ввод и вывод информации осуществляется через функции стандартной библиотеки. Прототипы рассматриваемых функций находятся в файле stdio.h . Эта библиотека содержит функции
Вывод информации
Функция printf() предназначена для форматированного вывода. Она переводит данные в символьное представление и выводит полученные изображения символов на экран. При этом у программиста имеется возможность форматировать данные, то есть влиять на их представление
на экране.
Общая форма записи функции printf() :
СтрокаФорматов состоит из следующих элементов:
- управляющих символов;
- текста, представленного для непосредственного вывода;
- форматов, предназначенных для вывода значений переменных различных типов.
Объекты могут отсутствовать.
Основные управляющие символы:
- %d — целое число типа int со знаком в десятичной системе счисления;
- %u — целое число типа unsigned int ;
- %x — целое число типа int со знаком в шестнадцатеричной системе счисления;
- %o — целое число типа int со знаком в восьмеричной системе счисления;
- %hd — целое число типа short со знаком в десятичной системе счисления;
- %hu — целое число типа unsigned short ;
- %hx — целое число типа short со знаком в шестнадцатеричной системе счисления;
- %ld — целое число типа long int со знаком в десятичной системе счисления;
- %lu — целое число типа unsigned long int ;
- %lx — целое число типа long int со знаком в шестнадцатеричной системе счисления;
- %f — вещественный формат (числа с плавающей точкой типа float );
- %lf — вещественный формат двойной точности (числа с плавающей точкой типа double );
- %e — вещественный формат в экспоненциальной форме (числа с плавающей точкой типа float в экспоненциальной форме);
- %c — символьный формат;
- %s — строковый формат.
Строка форматов содержит форматы для вывода значений. Каждый формат вывода начинается с символа % . После строки форматов через запятую указываются имена переменных, которые необходимо вывести.
Количество символов % в строке формата должно совпадать с количеством переменных для вывода. Тип каждого формата должен совпадать с типом переменной, которая будет выводиться на это место. Замещение форматов вывода значениями переменных происходит в порядке их следования.
Пример на Си
Результат работы программы
Тот же самый код может быть представлен с использованием одного вызова printf :
Табличный вывод
При указании формата можно явным образом указать общее количество знакомест и количество знакомест, занимаемых дробной частью:
Результат выполнения
В приведенном примере 10 — общее количество знакомест, отводимое под значение переменной; 5 — количество позиций после разделителя целой и дробной части (после десятичной точки). В указанном примере количество знакомест в выводимом числе меньше 10, поэтому свободные знакоместа слева от числа заполняются пробелами. Такой способ форматирования часто используется для построения таблиц.
Ввод информации
Функция форматированного ввода данных с клавиатуры scanf() выполняет чтение данных, вводимых с клавиатуры, преобразует их во внутренний формат и передает вызывающей функции. При этом программист задает правила интерпретации входных данных с помощью спецификаций форматной строки.
Общая форма записи функции scanf( ) :
Строка форматов и список аргументов для функции обязательны.
Результат работы программы:
Функция scanf( ) является функцией незащищенного ввода, т.к. появилась она в ранних версиях языка Си. Поэтому чтобы разрешить работу данной функции в современных компиляторах необходимо в начало программы добавить строчку
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
int main() int a[4][5];
int i,j,range,max,maxi,maxj;
float kproiz1,kproiz2;
int proiz1=1;
int proiz2=1;
printf( "введите диапазон заполнения\n" );
scanf( "%d" , &range);
//if (range>=1)
//range=range+5;
printf ( "матрица\n" );
for (i=0; i<5; i++) for (j=0; j<6; j++) a[i][j]=rand() % range+1;
printf( "%d " , a[i][j]);
>
printf( "\n" );
>
max = 1;
for (i=0; i<5; i++) for (j=0; j<6; j++) if (a[i][j] > max) max = a[i][j];
maxi=i;
maxj=j;
>
>
>
printf( "Максимальный элемент матрицы %d[%d;%d] \n" ,max,maxi+1,maxj+1);
proiz1= proiz2 = a[maxi][maxj];
if (maxi<=2) for (i=maxi+1; i<5; i++) if (maxj!=5) for (j=maxj; (j<i+1 && j!=5); j++) proiz1*=a[i][j];
>
>
if (maxj!=0) if (maxj==5) proiz1=proiz1*a[i][maxj];
>
for (j=maxj-1; (j<i+1 && j!=0); j--) proiz1=proiz1*a[i][j];
>
>
>
kproiz1=sqrt(proiz1);
printf( "Среднее геометрическое %f \n" ,kproiz1);
>
if (maxi>=2) for (i=maxi-1; i>0; i--) if (maxj!=5) for (j=maxj; (j<=i+1 && j!=5); j++) proiz2=proiz2*a[i][j];
>
>
if (maxj!=0) if (maxj==5) proiz2=proiz2*a[i][maxj];
>
for (j=maxj-1; (j<=i+1 && j!=0); j--) proiz2*=a[i][j];
>
>
>
kproiz2=sqrt(proiz2);
printf( "Среднее геометрическое %f" ,kproiz2);
>
return 0;
>
В данном уроке будут рассматриваться понятия переменной, типов данных. Ввод и вывод данных. Решены задачи по теме.
Опытный программист знает, а новичку полезно узнать, что главными элементами любой программы являются переменные, константы и операторы.
Переменными называют величины, значения которых изменятся в процессе выполнения программы.
Константами называются величины, которые не изменяют своего значения.
Операторы описывают те действия, которые должна выполнять программа.
Тип переменной является важнейшей характеристикой переменной. Определяет вид данных, содержащихся в переменной, набор операций, которые можно выполнять над этими данными. В Паскале существуют много типов переменных, для начала познакомимся с двумя:
Var a: integer;
Var a,b: real;
Для ввода данных используются команды (операторы) Read или Readln. Команда Readln отличается от команды Read тем, что после ввода необходимого количества данных осуществляется переход курсора на следующую строку.
Для вывода данных используются команды (операторы) Write и Writeln. Команда Writeln отличается от команды Write тем, что после вывода необходимого количества данных осуществляется переход курсора на следующую строку.
Более подробную теорию и решение задач смотрите в видеоуроке.
Нажмите PLAY, чтобы начать просмотр видеоурока.
Рассмотрим решение следующих задач:
Составьте программу, в которой осуществляется ввод целого числа с клавиатуры и вывод на экран монитора значения этого числа, увеличенного в 5 раз.Составьте программу, в которой осуществляется ввод целого числа с клавиатуры и вывод на экран монитора значения этого числа, увеличенного на 10.
Составьте программу, в которой осуществляется ввод двух целых чисел с клавиатуры и вывод на экран монитора значения их произведения.Узнайте больше и освойте новые языки программирования!
Для ввода данных в языке Турбо Паскаль предусмотрены стандартные операторы (процедуры) – READ и READLN , которые предназначены для чтения данных, как с клавиатуры, так и из файла. В данном разделе рассматривается ввод данных только с клавиатуры. Добавление к оператору READ символов LN обеспечивает автоматический переход курсора после ввода данных на новую строку.
Формат оператора:
Здесь a1,a2,a3. an – переменные, которым последовательно присваиваются значения. Если в тексте программы встречается оператор READ , компьютер приостанавливает работу и ожидает ввода значений переменных с клавиатуры. Когда все значения переменных, перечисленных в операторе ввода, введены, процесс выполнения программы продолжается.
Допускается использование оператора ввода без параметров
который выполняет переход на новую строку при вводе данных.
При вводе данных с помощью оператора READ нужно иметь в виду следующие основные правила:
- логические данные в Турбо Паскале вводить не разрешается;
- при вводе числовых данных, числа разделяются пробелом или символом окончания ввода (клавиша ENTER). Ввод всегда заканчивается нажатием клавиши ввода – ENTER;
- пробелы перед числом и между числами игнорируются, поэтому их можно ставить в любом количестве;
- если переменная описана как Integer , ее значение вводится как целое число, т.е. не допускается использование точки после числа;
- если переменная описана как вещественная ( Real ), а ее значение является целым числом, то можно вводить число как целое (т.е. без точки) и как вещественное число – с точкой. Преобразование целого числа к вещественному числу будет выполнено автоматически;
- ввод символьных данных имеет особенности. Поскольку пробел является символом, как и любой другой символ языка Турбо Паскаль, то символьные данные необходимо вводить сплошной строкой;
- одной символьной переменной можно присвоить значение только одного символа;
- нажатие клавиши ENTER воспринимается как символ, поэтому для правильного ввода символьных данных рекомендуется перед каждым оператором ввода символьных данных ставить оператор перехода на новую строку READLN , чтобы их ввод осуществлялся с новой строки.
ЗАДАЧА. Ввод данных.
Введем в программу следующие исходные данные:
Обозначим символом пробел при вводе. При вводе числа будем разделять пробелом. Между числами допускается любое количество пробелов. Тогда экран монитора при вводе данных может выглядеть следующим образом:
Введите a, b, c: 2 3
Введите x, y, z:44.4 47.5 76
Введите s1,s2,s3:A B C
Вывод данных
Для вывода данных из памяти компьютера на экран монитора предназначен оператор Write .
Здесь a1,a2,a3. an могут быть либо переменными, либо строкой символов, заключенной в апострофы. Все элементы перечисляются через запятую. Добавление к оператору WRITE символов LN обеспечивает автоматический переход курсора после вывода данных на новую строку.
Допускается использование оператора ввода без параметров
который выполняет переход на новую строку, поэтому последующий оператор вывода с параметрами будет выводить данные с новой строки. Оператор вывода без параметров часто используется для формирования пустых строк.
Параметрами оператора WRITE могут быть данные целого, вещественного, логического, символьного, а также типа string .
Расположение данных на экране монитора может быть задано параметрами оператора WRITE , тогда вывод называется выводом с форматами данных. Если в операторе WRITE форматы не используются, вывод называется бесформатным выводом или стандартной формой вывода.
Бесформатный вывод. Форма представления выводимых данных зависит от типа данных:
- значения логического типа выводятся в виде логических значений TRUE и FALSE ;
- значения символьных переменных выводятся в виде соответствующих символов;
- символьная константа выводится в том виде, как она записана, но без апострофов;
- значения величин целого типа выводятся как целые числа;
- значения величин вещественного типа выводятся в формате с плавающей точкой.
При бесформатном выводе отводимое количество позиций равно размеру данных. При выводе символа отводится одна позиция, при выводе целого числа – число позиций равно числу значащих цифр плюс одна позиция под знак, если число отрицательное. Это необходимо учитывать при последовательном выводе данных, например чисел, чтобы значения разных переменных не сливались друг с другом.
ПРИМЕР. Рассмотрим фрагмент программы:
Оператором write(n,m); на экран монитора выводятся целые числа: n=1234 и m=7890 . Поскольку используется вывод без форматов данных, результат будет иметь вид:
Два числа слились. Для того чтобы числа не сливались необходимо использовать разделяющие пробелы или разнесение информации по разным строкам.
Результат:
Результат:
Форматный вывод. Для вывода вещественных чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:
где: m – целое число, указывающее общее количество позиций отводимое под значение переменной, включая позицию под знак числа, точку и количество цифр дробной части; n – целое число, определяющее количество цифр дробной части.
Выводимая информация выравнивается по левому краю. При этом подавляется печать ведущих нулей, т.е. если для вывода числа было выделено четыре позиции, то на экран монитора будет выведено, например, 6 , а не 0006 .
Пример. Выведем значение переменной A , равное 401.3 оператором write(A:8:2) . На экран монитора будет выведено:
401,30 |
8 позиций |
Символом обозначен пробел.
Вывод вещественных чисел выполняется по следующим правилам:
- Если число имеет меньшую длину, чем m , то оно будет дополнено слева пробелами.
- Если число имеет большую длину, чем m , то параметр m игнорируется и число будет выведено полностью.
- Если дробная часть больше, чем параметр n , то число округляется. Округление не изменяет самого значения переменной, меняется только представление числа на мониторе.
- Если параметр n не указан, то ни дробная часть числа, ни десятичная точка не выводятся. Вывод осуществляется в формате с плавающей запятой.
В качестве примера рассмотрим печать вещественного числа в различных форматах.
Результат работы программы:
Печать вещественного числа
Печать в фиксированном формате
Печать в плавающем формате
Для вывода целых чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:
k – целое число, указывающее общее количество позиций, отводимое под значение переменной.
В целых числах отсутствует дробная часть, поэтому нет необходимости указывать в формате число позиций дробной части.
В этом уроке мы познакомимся с особенностями функции printf() и типами данных: целыми и вещественными числами, символами, массивами и строками. Это далеко не все допустимые в C типы. Есть еще указатели, структуры, объединения, перечисления, также в C есть возможность определять собственные типы данных.
Функция printf() и форматированный вывод
Вывод символов на экран, а точнее в стандартный поток вывода, осуществляется в языке C помощью функции printf(). Эта функция выводит на экран строку, переданную первым аргументом, предварительно заменив в ней специальные комбинации символов преобразованными в символы данными, переданными последующими аргументами. Следующие после первой строки данные могут быть строками, символами, целыми или вещественными числами, а также указателями. У каждого типа данных имеется свое обозначение — своя спецификация формата.
На прошлом уроке мы выводили строку "Hello World" вот так:
Однако то же самое можно было получить так:
Здесь %s — это спецификация строкового формата, т. е. вместо %s будет подставлен следующий аргумент, данные которого должны быть строкой. Вывод целого числа может выглядеть так:
Вместо числа 5 может стоять переменная целочисленного типа. Функция printf() может принимать произвольное число аргументов:
При выводе данные подставляются по очередности следования: 3 на место первой спецификации, dogs на место второй и т.д. То есть следует строго соблюдать соответствие форматов и последующих данных.
Под выводимые данные можно выделять больше знакомест, чем необходимо. Для этого между знаком % и буквой формата прописывается целое число, обозначающие ширину поля, например так: %10d. По умолчанию выравнивание происходит по правому краю. Для выравнивания по левому краю перед числом ставится знак минус.
Напишите программу, которая выводила бы на экране данные примерно так, как на картинке. При этом используйте возможность задать ширину поля, а также выравнивание по левому и правому краям.
Целочисленные типы
В языке C существует несколько типов целых чисел. Они различаются между собой объемом памяти, отводимым под переменную, а также возможностью присваивания положительных и отрицательных значений. От объема памяти, т. е. от количества выделяемых байтов под переменную, зависит, каким может быть максимально возможное значение, записанное в данную переменную. Следует отметить, что в языке Си объем памяти, выделяемый под конкретный тип, может зависеть от операционной системы.
Так, если под переменную какого-либо целочисленного типа выделяется 2 байта, что составляет 16 бит, и ей можно присваивать только положительные числа и ноль, то эти числа будут в диапазоне от 0 до 65535, т. к. 2 16 = 65536, но одна вариация забирается на нуль. Если же тип допускает отрицательные числа, то диапазон допустимых значений уже будет лежать в пределах от -32768 до +32767.
Часто в программах используется тип int. Вот пример, где происходит объявление и определение (присваивание значений) целочисленных переменных, а также вывод их значений на экран:
Обратите внимание, что в языке C присваивать значение можно при объявлении переменных.
Результат будет таким:
Чтобы понять, почему такое происходит, представьте себе числовую ось не в виде прямой, а в виде окружности. Когда мы достигаем конца, двигаясь например по часовой стрелке, то это значит, что мы пришли в начало. Поэтому, продолжая движение по часовой стрелке, следующее число, которое мы увидим за максимально возможным, – это самое минимальное. Данную особенность языка Си следует иметь в виду при выполнении арифметических действий.
То же самое с минимумом int. Если мы начнем из него вычитать, т. е. двигаться против часовой стрелки, то перескочим максимальную границу и будем идти в направлении уменьшения уже от нее:
Помимо типа int в языке программирования C существуют другие (модифицированные) целочисленные типы:
short — отводится меньше байтов, чем на int;
long — отводится больше байтов, чем на int (не всегда, зависит от системы);
unsigned — столько же байт как у int, но без отрицательных чисел; в результате чего знаковый разряд освобождается, и количество положительных значений увеличивается;
При выводе длинных чисел следует дополнять спецификацию формата буквой l перед буквой формата. Например:
Символы
Под символьный тип данных отводится 1 байт памяти. У каждого символа есть соответствующее ему целое число по таблице символов ASCII.
Тип char языка программирования C включает диапазон чисел от -128 до 127. Значения от 0 до 127 могут быть заданы или выведены на экран в виде соответствующих символов (на самом деле не все). Если значение переменной задается в виде символа, то символ заключается в одиночные кавычки, например, так: 'w'. Также в языке существует тип unsigned char с диапазоном чисел от 0 до 255.
С другой стороны, если переменная задана как int или short и ей присвоено значение в диапазоне, где оно может быть представлено символом, то значение можно вывести как символ. Соответственно целочисленной переменной можно присвоить символ.
Если в программе вы будете использовать целые числа со значениями до 127 или 255 и хотите сэкономить память, то объявите переменную как char или unsigned char.
Получается, что в программе символы — это числа, а числа — символы. Тогда как указать, что мы хотим видеть на экране: символ или число? Для вывода на экран символов используется спецификация формата вида %c.
Так программа, представленная ниже,
выдает такой результат:
Число 63 по таблице символов ASCII соответствует знаку '?'. Сначала мы выводим значение переменной ch в формате символа, затем – числа. Тоже самое с переменной uch, однако ее значение было задано через символ, а не число.
Вещественные типы данных
В языке C существует три типа чисел с плавающей точкой: float и double (двойной точности) и long double. Также существует три формата вывода вещественных чисел, причем они не связаны с типами, а связаны с удобством представления числа. Вещественные числа могут иметь высокую точность, очень маленькое или очень большое значение. Если выполнить функции printf() с такими параметрами:
, то на экране мы увидим следующее:
В первом случае (%f) выводится число в обычном виде. По умолчанию точность представления числа равна шести знакам после точки.
Во втором случае (%g) число выводится как обычно, если количество значащих нулей не больше четырех. Если количество значащих нулей четыре и больше, то число выводится в нормализованном виде (третий случай). Запись 5e-5 означает 5 * 10 -5 , что равно 0.00005. А, например, запись 4.325e+3 является экспоненциальной записью 4.325 * 10 3 , что равно 4325. Если с такой формой представления чисел вы сталкиваетесь первый раз, то почитайте дополнительные источники, например, статью в Википедии "Экспоненциальная запись".
Четвертый формат (%e) выведет число исключительно в нормализованном виде, каким бы это вещественное число ни было.
Если при выводе требуется округлить число до определенной точности, то перед буквой-форматом ставят точку и число-указатель точности. Например, printf("%.2f", 0.23) выведет на экран 0.23, а не 0.230000. Когда требуется указать еще и поле, то его ширину прописывают перед точкой, например, %10.3f.
Массивы
Переменные, содержащие массивы, в языке программирования C объявляются, например, так:
Если при указании количества элементов используется константа, она должна быть определена до своего использования следующим образом (чаще константы определяют вне функций):
Индексация массивов в языке программирования C начинается с нуля.
Присваивание значений элементам массивов можно произвести сразу или в процессе выполнения программы. Например:
Когда переменная-массив объявляется и сразу определяется (как в случае vowels), то размер массива можно не указывать, т. к. он вычисляется по количеству элементов, переданных в фигурных скобках.
Строки
В языке программирования С нет отдельного строкового типа данных, хотя формат вывода строки есть (%s). Строки в C – это массивы символов, последний элемент которых является первым (с номером 0) символом в таблице ASCII. В этом месте таблицы стоит "ничто", имеющее символьное обозначение '\0'.
С другой стороны, строки — это необычные массивы в том смысле, что работа с ними в языке программирования C несколько отличается от работы с числовыми массивами. В этом мы убедимся позже.
Выше мы объявили и определили массив vowels. Если бы мы его определили вот так:
то он был бы строкой. Во втором случае сами двойные кавычки "говорят" что это строка, и символ окончания строки '\0' записывается в память автоматом.
Массивы символов можно выводить на экран, просто указав имя переменной, а вот с массивами чисел такой номер не пройдет:
Функция sizeof()
Функция sizeof() языка C принимает в качестве аргумента константу, тип данных или переменную и возвращает количество байт, которые отведено под этот объект в памяти.
При выводе на экран значения, возвращаемого sizeof() используется формат %lu (длинное целое без знака). Примеры:
Напишите программу, выводящую информацию о количестве байтов, отводимых в памяти под типы данных, которые были изучены на данном уроке. При работе с массивами символов, определяемыми как строковые литералы (в двойных кавычках), обратите внимание, что размер массива больше на единицу, чем количество видимых символов.
Читайте также: