5) copy(S,POZ,N) - выделение из строки S подстроку длиной N символов, начиная с позиции POZ.
'ABCDEF' copy(S,2,3) 'BCD'
6) concat(S1,S2,...,SN) - сцепление строк S1,S2,...,SN в указанном порядке. Сумма символов не должна превышать 255.
concat('AA','XX',' YZ') 'AAXX YZ'
7) length(S) - вычисление длины в символах строки S. Результат имеет целочисленный тип.
'SYSTEM' length(S) 6;
8) pos(S1,S2) - обнаружение первого появление в строке S2 подстроки S1. Результат имеет целочисленный тип и равен номеру позиции первого символа подстроки S1. Если подстроки S1 не найдено, результат равен 0.
'ABCDEF' pos('DE',S2) 4
'ABCDEF' pos('Г',S2) 0
9) upcase(C) - преобразование строчной латинской буквы в прописную. Параметр и результат имеют литерный тип.
'n' upcase(C) 'N'
Примеры выполнения задания лабораторной работы
Пример 30. В заданной последовательности символов, предшествующих первому символу ! (восклицательный знак), заменить все символы + на *.
Пример 32. Дана последовательность символов х1, х2,...,хn. Выяснить, есть ли среди этих символов пара соседствующих букв МА.
Программа имеет вид:
program pr32;
uses crt;
label 1;
const n=30;
type mas=array[1..n] of char;
VAR X:MAS; I:INTEGER; C:CHAR;
BEGIN CLRSCR;
WRITELN('ВВЕДИ ПОСЛЕДОВАТЕЛЬНОСТЬ СИМВОЛОВ');
FOR I:=1 TO N DO READ(X[I]); WRITELN;
WRITELN('ПОСЛЕДОВАТЕЛЬНОСТЬ СИМВОЛОВ:');
for i:=1 to n do write(x[i]); writeln;
for i:=1 to n-1 do
if (x[i]=’m’) and (x[i+1]=’a’) then
BEGIN
WRITELN('MA-Є'); GOTO 1
END;
WRITELN('MA-НЕТ');
1: c:=readkey
end.
Пример 33. Приведем текст программы простейшей лингвистической обработки строк, в котором к строковым данным применяются приведенные выше процедуры и функции.
program PR33;
uses crt;
var a,b,c:string[12];s:string[40];ch:char; N:integer;