Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
л_2_Лексические_основы_С++.doc
Скачиваний:
11
Добавлен:
04.11.2018
Размер:
582.66 Кб
Скачать

Строковые константы

Строковый литерал – это последовательность символов, заключенная в двойные кавычки. Строка в С++ соответствует типу данных «массив символов» и может содержать любые символы алфавита языка, например: ”A”, ”строка”, ”string”, “\n”. Строки завершаются символом ’\0’ (компилятор автоматически добавляет ‘\0’).

При наличии символа L перед открывающей кавычкой, говорят о широкой строковой константе: L”A”, L”строка”, L”string”, L“\n”.

Пустая строка определяется как ”” и сохраняется как один символ ‘\0’, т.е.имеет длину, равную 1. Cимвольная константа и строка из одного символа не одно и то же: ’x’ не есть ”x”. Первое – это один символ, использованный для представления числового значения буквы х. Второе – строка, содержащая букву х и ‘\0’ (имеет длину 2). Поэтому при создании строки (как массива символов) необходимо предусматривать дополнительный байт на символ ‘\0’, а при инициализации такой строки в число инициализирующих элементов включать в качестве завершающего символа ’\0’.

Примеры строковых литералов:

”5” // строковый литерал из символов ’5’ и ’\0’

”symbol” // строковый литерал из семи символов, включая символ ’\0’

”\’” // строковый литерал из апострофа и завершающего нуля

”” // пустая строка (содержит только код завершающего нуля).

”a\tb\n”– //строковые литералы могут содержать управляющие последовательности; // если этот литерал записан в операторе вывода, то на экран выводится: буква a; //несколько пробелов, соответствующих значению символа табуляции; //буква b. После этого происходит переход на следующую строку.

Компилятор объединяет две строковые константы, разделенные символами – разделителями и следующие одна за другой:

char *s=Mi” “nsk;

cout <<s << endl; //выведет на экран: Minsk

char *longStr = “Это длинная строка, которую”

“ мы разбили на 3 строки.”

“ Компилятор сам склеит строки.”

Длинную строковую константу можно разместить на нескольких строках, используя в качестве знака переноса обратную косую черту. Например, строка:

char *longStr1= “Никто не доволен своей \

внешностью, но все довольны \

своим умом”

эквивалентна сроке:

“Никто не доволен своей внешностью, но все довольны своим умом”.

Хотя длина строки в С++ практически не ограничена, текст программы не должен выходить за пределы ширины экрана для того, чтобы было удобно читать и распечатывать программу.

Именованные константы

Именованные константы позволяют сделать запись более наглядной. Идентификаторы именованных констант рекомендуется записывать прописными буквами.

В С++ используются типизированные именованные константы:

  • для задания параметров, управляющих: - размером структур данных (например, массивов: const int n=10; int mas[n];), - числом итераций в циклах (const int k=10; for (int i=1; i<k; i++) ….)

  • для задания других значений, изменение которых может потребоваться при отладке или модернизации программы;

  • для обозначения часто встречающихся в программе постоянных величин;

  • при использовании констант, имеющих общеупотребительные обозначения.

Например:

int main ( )

{const int k = 40;

int M[k][k];

float A[k], B[k][k];

……

}