- •Лабораторная работа №6
- •Теоретический материал.
- •Длинна строки, определяется с помощью стандартной функции Length (St), которая возвращает целое число, равное количеству символов в строке St, например:
- •Очень полезна при работе со строками функция типа Integer
- •Процедура
- •Задачи для самостоятельного решения.
Длинна строки, определяется с помощью стандартной функции 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 = “}
