Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл: Источник:
Скачиваний:
101
Добавлен:
04.03.2014
Размер:
80.38 Кб
Скачать

7

  1. Строки.

Строка – последовательность символов определенной длины. Существует два способа представления символьных строк.

    1. Строки как одномерный символьный массив.

Для описания строки можно использовать одномерный массив символов, если в качестве индекса применить ограниченный целый тип. В этом случае размер массива определяет длину строки. Описание строки с помощью массива выполняется двумя способами:

  1. В разделе описания переменных

VAR

S1,S2: array [1..40] of char; {Символьные строки длиной 40 байт}

S3: array [1..80] of char; { Символьная строка длиной 80 байт }

  1. В разделе описания типов, с последующим определением в разделе описания переменных

TYPE

S40 = array [1..40] of char; {Тип символьная строка длиной 40 байт}

S80 = array [1..80] of char; { Тип - символьная строка длиной 80 байт }

VAR

S1,S2: S40; {Символьные строки типа S40 }

S3: S80; {Символьная строка типа S80 }

Присвоить значение строковому массиву можно несколькими способами:

  1. С помощью символьной константы-литерала. Однако, длина константы должна точно соответствовать размеру этого массива.

VAR S: array[1..10] of char;

Begin

S:=’Пример один’;

  1. С помощью типизированной константы- массива.

CONST S: array[1..10] of char = (‘П’,’р’,’и’,’м’,’е’,’р’,’ ’,’д’,’в’,‘а’);

  1. Вводом с клавиатуры или из текстового файла. В этом случае строка водится символ за символом либо без пробелов в одну строку, либо через нажатие клавиши «ENTER» после каждого символа. Таким образом, для ввода всей строки требуется использование циклов. Если строка содержит меньше символов, чем указано при описании, следует использовать циклы с пред или пост условиями (для строк, длина строки заранее неизвестна), или счетные циклы (для строк, реальная длина которых определяется при вводе). В случае работы со строкой максимальной длины (указанной при описании) как правило используются счетные циклы. (см. пример 3.1)

Вывод символьного массива - строки можно осуществлять одним оператором write или writeln благодаря дополнительным средствам работы с символьными массивами, хотя можно использовать цикл для посимвольного вывода, как для обычных одномерных массивов.

Пример 1. Написать фрагмент программы, реализующей ввод строки символов длиной не более 80 символов и ее печать после ввода.

Programm Vvod_vivod.

TYPE

S80 = array [1..80] of char; { Тип - символьная строка длиной 80 байт }

VAR

S3: array [1..80] of char; {Символьная строка типа S80 }

N,i:integer;

begin

writeln(‘Введите строку символов не более 80 символов’);

writeln(‘Если строка менее 80 символов – в конце строки точка’);

i:=0;

repeat

i:=i+1;

read(S3[i]);

until (i=80) or (S3[i]=’.’);

readln;

if i<80 then N:=i-1

else n:=80;

writeln(‘Исходная строка символов’);

writeln(S3); {Вывод массива – строки одним оператором вывода}

writeln(‘Исходная строка символов’);

for i:=1 to N do wite(S3[i]); {Вывод массива символов в цикле}

writeln;

end.

Над строками, описанными с помощью одномерного массива, возможно выполнение двух операций:

  1. Присвоение одной строке значения другой при условии совпадения их типов, а также размеров массивов.

  2. Конкатенация строк, обозначаемая символом «+». Результатом этой операции будет новый символьный массив, число элементов которого равно сумме размеров исходных массивов, а значениями элементов – элементы этих массивов, последовательно следующие друг за другом. Однако, следует отметить, что эта операция не допускается в операторе присваивания с правой стороны, а может использоваться только в операторе вывода:

Пример 2.Использование операций над строками.

program strarr;

Соседние файлы в папке Методичка С++