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

Функция Length

function Length(S: String): Integer;

Возвращает текущую длину строки.

Пример:

S := ’Иван Иванович’;

D := Length(S); {В строке S содержится 13 символов,

поэтому D = 13}

Функция Concat

function Concat(s1 [, s2,..., sn]: String): String;

Склеивает строки s1, s2 ... sn в одну и возвращает ее.

Пример:

S1 := ’Иван’;

S2 := ’Иванович’;

S3 := ’Иванов’;

S4 := Concat(s3,’ ‘,s1,’ ‘,s2); {В строке S4 содержится

‘Иванов Иван Иванович’ }

Эта функция очень редко используется, поскольку вместо нее можно использовать операцию +.

Пример:

S1 := ’Иван’;

S2 := ’Иванович’;

S3 := ’Иванов’;

S4 := s3 + ’ ‘ + s1 + ’ ‘ + s2; {В строке S4 содержится

‘Иванов Иван Иванович’ }

Функция Copy

function Copy(S: String; Index: Integer; Count: Integer):

String;

Возвращает подстроку строки S. Index - первый символ подстроки,

Count - длина подстроки.

Пример:

S1 := ’Петров Вася’;

S2 := Copy(s3, 4, 3); {В строке S2 содержится ‘ров’ }

S3 := Copy(s3, 9, 2); {В строке S3 содержится ‘ас’ }

Функция Pos

function Pos(Substr: String; S: String): Byte;

Ищет в строке S подстроку SubStr. Возвращает индекс первого

элемента первой найденной подстроки. Если подстрока не найдена,

возвращает 0.

Пример:

S1 := ’Информатика и математика’;

K := Pos(‘мат’, s1); {K = 6 – первый раз подстрока ‘мат’

в строке s1 начинается с 6-ой позиции}

Примеры использования стандартных процедур и функций обработки строк

Задача 1: Вводится строка S и два слова - W и Z. Заменить в строке S слово W на слово Z.

Замечание: Считаем, что в строке S имеется ровно одно слово W.

var

s : string; {Строка}

w : string; {Заменяемое слово}

z : string; {Замена}

f : integer; {Позиция первого символа слова W}

l : integer; {Длина заменяемого слова W}

begin

{Ввод строки}

write(' s= ');

readln(s);

{Ввод заменяемого слова}

write(' w= ');

readln(w);

{Ввод замены}

write(' z= ');

readln(z);

{Поиск позиции первого символа слова W в строке S}

F := Pos(W, S);

{Вычисление длины слова W}

L := Length(W);

{Удаление из строки S слова W}

Delete(S, F, L);

{Вставка вместо удаленного слова W слова Z}

Insert(Z, S, F);

{Вывод строки после замены слова W на слово Z}

writeln(' s= ',S);

end.

Множества

Термин “множество” в Turbo Pascal используется аналогично его математическому пониманию. Множества в Turbo Pascal могут включать элементы только порядковых типов. При этом элементы какого-либо конкретного множества должны принадлежать одному типу, который называется базовым типом. Число элементов базового типа не может быть больше 256, а порядковые номера элементов (т.е. значение функции ord для элементов) должны находиться в пределах от 0 до 255 (как мы видим, символьный тип идеально подходит для того, чтобы быть базовым типом множества).

Общий вид определения типа множества следующий:

type

имя_типа_множества = set of базовый_тип;

Пример:

type

alpha = set of ‘A’ .. ‘Z’; {Множество прописных латинских букв. Базовый тип – интервальный тип. Для интервального типа базовым служит символьный тип}

oper = set of (plus, minus, mul, div); {Множество арифметических операций. Базовый тип - перечисляемый}

SetChar = set of char; {Множество символов. Базовый тип - символьный}

Для задания значений переменной типа множество используется так называемый конструктор множеств. Конструктор задает множество с помощью перечисления в квадратных скобках выражений, значения которых дают элементы этого множества (Например - [‘A’,’F’]). Допустимо использовать диапазоны значений [‘A’..’F’] – это то же самое, что и [‘A’,’B’,’C’,’D’,’E’, ‘F’]).

Пример:

var

a, b, c: alpha; {a,b,c – множества больших латинских букв}

begin

a := [‘A’,’B’,’E’..’G’] {множество а содержит элементы A,B,E,F,G}

b := [‘Z’] {Множество а содержит элемент Z}

c := []; {Пустое множество не содержит элементов}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]