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

Длинна строки, определяется с помощью стандартной функции Length (St), которая возвращает целое число, равное количеству символов в строке St, например:

Lenght (Hello!) = 6

Следует заметить, что строковая переменная может содержать пустую строку, которая обозначается двумя подряд идущими апострофами. Длина пустой строки равна нулю:

Lenght ( ) = 0

Самый первый байт строковой переменной имеет индекс 0, и содержит символ, код которого равен длине строки:

Ord (St [0] ) = Lenght (St).

Если этот символ заменить символом, кож которого меньше, то строка уменьшиться по длине настолько, насколько код нового символа меньше, а остальные символы будут безвозвратно утрачены. Если попытаться заменить символ первого элемента на символ с большим кодом, то это приведет к непредсказуемым последствиям. При переприсваивании строковой переменной нового значения, автоматически меняется символ в элементе с индексом ноль.

Сложение строк.

К строкам можно применять операцию “+” – сцепление, например:

St: = a  + b;

St: = St + c + de; {St =abcde}

Аналогичным образом функция типа String

Concat (St1, St2, …. , Stn), n = 1,2, ..

возвращает строку, представляющую собой сцепление строк St1, St2, .. , Stn, например:

St = ( com, pu , ter ); {St = computer}.

Строки можно не только сцеплять, но и вставлять одну в другую. Это осуществляется с помощью процедуры

Insert (SubSt, St, N),

которая вставляет подстроку SubSt в строку St, начиная с символа с номером N, например:

Если максимальная длина стринга St меньше нового значения ( т.е. суммы длин исходного и вставляемого стрингов), то в результирующем стринге, согласно перечисленным выше правилам, все литеры, выходящие за пределы его длины (справа), будут отброшены. Если N>Length (St), то строка SubSt будет присоединена к последнему элементу строки St, пример:

Var St: String [8];

Begin St:=  com;

Insert (tecxy, St,4); {St = comterxy}.

Insert (pu, St,4); {St = computer}.

Удаление, вырезка, поиск подстрок.

Процедура

Delete (St,N,Kol)

удаляет Kol символов из строки St, начиная с символа с номером N. Пример:

St: = computer;

Delete (St,3,4); {St = coer}.

Если число символов, которые требуется удалить, превышает число символов в строке St, начиная с указанной позиции (т.е. Length (St)-N+1<Kol), то удаляются все символы, начиная с указанного, и до конца строки.

Пример:

St: = computer;

Delete (St,5,10); {St = comp}.

Если второй параметр превышает длину строки, из которой удаляется подстрока (т.е. Length (St)<N), в этом случае ни один символ из строки не будет удален.

При решении многих задач используется не вся строка, а только ее часть (подстрока). Выделить подстроку из строки можно с помощью функции типа String.

Copy (St,N,Kol),

копирующий из строки St Kol символов, начиная с символа с номером N. Строка St не изменяется.

Пример:

St: = computer;

St1: = Copy(St,4,3); {St1 = put}.

{St = computer}

Если в строке, начиная с указанной позиции, количество символов меньше, чем требуется, скопировать (Length (St)-N+1<Kol), функцией возвращается реально существующая часть строки, например, после выполнения операторов

St: = computer;

Writeln (Copy(St,6,5));

на экран выводится подстрока ter. Если второй параметр функции выходит за границы длины строки, функция возвращает пустую строку, например:

St: = Hello;

St1: = Copy (St,6,3); {St1 = “}