Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИМВОЛЫ И СТРОКИ_лекция.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
99.33 Кб
Скачать

Функция length

Функция length возвращает длину строки. У функции один параметр-переменная строкового типа. Значение функции (целое число) - количество символов, из которых состоит строка. Например, в результате выполнения инструкций

N: =length (‘Иванов’)

M: =length (‘Невский проспект’)

Значения переменных n и m будут равны 6 и 18.

Следующая программа, ее текст приведен на листинге 6, использует функцию length для завершения цикла ввода информации с клавиатуры.

Листинг 6. Ввод символьного массива (instarr.pas)

Program instarr;

Const

N=35;

Var

Student: array [1..N] of string; {список – массив строк}

Name: string [30]; {введенная строка}

I: integer;

Begin

I: =1;

Repeat

Write (‘Введите фамилию или <Enter> для завершения- >’);

Readln (name);

If length (name)<>0

Then

Begin

Student [i]:=name;

I: =i+1;

End;

Until (length (name) =0) or (i=N);

{вывод введенного списка}

i:=1;

while (length (student[i])<>0) and (i<=N) do

begin

Writeln (student[i]);

I:=i+1;

End;

End.

Программа вводит список студентов. Цикл ввода завершается, если введен весь список (35 фамилий), или есть в ответ на запрос очередной фамилии пользователь нажмет клавишу <Enter> (в этом случае длина введенной строки равна нулю)

Процедура delete

Процедура delete позволяет удалить часть строки. В общем виде обращение к процедуре выглядит так:

Delete (Строка, p, n);

Где строка-переменная строкового типа; p- номер символа, с которого начинается удаляемая подстрока; n- длина удаляемой строки.

Например, в результате выполнения инструкции

S:=’Город Санкт -Петербург’;

Delete (s, 7, 6)

Значением переменной s будет строка ‘Город Петербург’

Функция pos

Функция pos позволяет определить положение подстроки в строке. В общем виде обращение к функции выглядит так:

Переменная pos (Подстрока, Строка);

Где подстрока –строковая константа или переменная, которую надо найти в стоковой константе или переменной Строка.

Например, в результате выполнения инструкции

P:=pos (‘Пе’,’Санкт –Петербург’);

Значение переменной p будет равно 7.

Если в строке нет искомой подстроки, то функция pos возвращает нуль. Следующая программа, е текст приведен на листинге 7,использует функцию pos и процедуру delete для удаления пробелов в начале введенной с клавиатуры строки.

Листинг 7. Удаление начальных пробелов строки (dledspa.Pas)

Program dledspa;

Var

St: string [30];

Begin

Write (‘Введите строку’);

Readln (st);

While (pos (‘ ‘,st)=1) and (length(st)>0) do

Delete (st,1, 1);

Write (‘Строка без начальных пробелов:’, st);

End.

Пробелы удаляются в цикле while до тех пор, пока функция pos обнаруживает пробел в начале строки (значение pos при этом равно еденице). Необходимость проверки условия length(st)>0 объясняется возможностью того, что введенная с клавиатуры строка состоит из пробелов. Вот пример работы программы:

Ведите строку: ул. Садовая

Строка без начальных пробелов: ул. Садовая

Функция copy

Функция copy позволяет скопировать фрагмент строки. В общем виде обращение к функции copy выглядит так:

Переменная copy (Строка, p, n);

Где строка – переменная строкового типа, содержащая строку, фрагмент которого надо получить; p- номер первого символ в строке Строка, с которого начинается выделяемая подстрока; n- длина выделяемой строки.

Например, в результате выполнения инструкции

St: =’Инженер Иванов’;

Fam:= copy (st, 9,6);

Значением переменной fam будет строка ‘Иванов’.