Тип переменных строка - string

Обработка элементов двумерных массивов (матриц) обычно выполняется с помощью двойного цикла. Один цикл управляет номером строки, другой – номером столбца.

При решении задач часто возникает необходимость в использовании последовательности символов. Такую последовательность можно описать как массив символов, однако в Паскале для таких целей имеется специальный тип – string[n] – строка из n символов, где n<=255. способы описания переменных – строк – аналогичны описанию массивов.

1). Строковой тип определяется в разделе описания типов, переменные этого типа – в разделе описания переменных:

type word : string[20];

var a,b,c : word;

2). Можно совместить описание строкового типа и соответствующих переменных в разделе описания переменных:

var a,b,c : string[20];

d : string[30];

3). Можно определить строковую переменную и ее начальное значение как констант-строку:

const l: string[11]=’информатика’;

Символы, составляющие строку, занумерованы слева направо; к ним можно обращаться с помощью индексов, как к элементам одномерного массива. Как же реализовать такое обращение? Для этого нужно написать переменную-строку, с номером символа в ней, указанным в квадратных скобках: S[1];

Для переменных одного строкового типа определен лексикографический порядок, являющийся следствием упорядоченности символьного типа:

‘fife’ < ‘tree’ ( так как ‘f’ < ‘t’);

‘4’ > ‘237 ( так как ‘4’ > ‘2’).

Кроме логических операций >, <, =, для величин строкового типа определена некоммутативная операция соединения, обозначаемая знаком плюс:

a:=’кол‘+’o’ + ‘кол‘; ( в результате a=’колокол’).

Для строковых величин определены следующие четыре стандартные функции.

1. Функция соединения – concat(s1,s2,…sk). Значение функции – результат соединения строк s1,s2,…sk, если он содержит не более 255 символов.

2. Функция выделения – copy(s,i,k). Из строки sвыделяется k символов, начиная с i-го символа:

a:=copy(‘крокодил’,4,3); (в результате a=’код’).

3. Функция определения длины строки – length(s). Вычисляется количество символов, составляющих текущее значение строки s:

b:=length(‘каникулы’); (b=8).

4. Функция определения позиции – pos(s,t). Вычисляется номер позиции, начиная с которого строка sвходит первый раз в строку t; результат равен 0, если строкаs не входит вt:

c:=pos(‘ом’, ‘компьютер’); (c=2).

В Паскале определены также четыре стандартные процедуры для обработки строковых величин:

1. Процедура удаления delete(s,i,k). Из строки s удаляется k символов, начиная с i-го символа:

s:=’потолок’; delete(s,5,2); ( s=’поток’).

2. Процедура вставкиinsert(s,t,i). Строка s вставляется в строку t, начиная с позиции i:

t:=’поток’; insert(‘ло’,t,5); (t=’потолок’)

3. Процедура преобразования числа в строку символовstr(k,s). Строка s получается «навешиванием» апострофов на число k:

str(564,s); (s=’564’)

4. Процедура преобразования строки из цифр в числоval(s,k,i).Число i=0, если в строке s нет символов, отличных от цифр, в противном случае i= позиции первого символа, отличного от цифры:

val(‘780’, k, i); (k=780; i=0).