Занятие 3. Стандартные функции для работы со строками (concat,copy,length, pos,upcase).

Функция Length

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

Program DemoFunctionLength;

Var

Word : string;

Begin

write ('Введите слово :');

readln(Word);

writeln('Это слово состоит из ',Length (Word),' букв');

End.

Примечание. При подсчете фактической длины строки учитываются все входящие в нее символы, в том числе и пробелы.

Функция Upcase

Функция Upcase позволяет преобразовывать символ любой литеры из строчного в прописной. Эта функция рассчитана на обработку отдельного символа. Поэтому для обработки строки символов с помощью этой функции приходится организовывать цикл.

Program DemoFunctionUpcase;

Var

Word : string;

i : Byte;

Begin

Word := 'фирма Microsoft';

for i := 1 to Length (Word) do

Word[i] := UpCase (Word[i]);

writeln(Word); {выводится текст 'фирма MICROSOFT'}

End.

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

Примечание. Русские литеры не могут обрабатываться этой функцией.

Для того, чтобы преобразовать в заглавные строчные буквы русского алфавита, применяют оператор выбора Case:

. . .

case Word[i] of

'a' : Word[i] := 'A';

'б' : Word[i] := 'Б';

'в' : Word[i] := 'В';

. . .

end;

. . .

Функция Copy

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

• имя строки, из которой должен извлекаться копируемый фрагмент,

• позицию в строке, начиная с которой будет копироваться фрагмент,

• число копируемых символов.

Program DemoFunctionCopy;

Var

Word : string;

Word1 : string[20];

Begin

Word := 'фирма Microsoft';

writeln(Word); {выводится текст 'фирма MICROSOFT'}

Word1 := Copy (Word,1,5);

writeln(Word1); {выводится текст 'фирма'}

End.

Примечание. Если начальная или конечная позиции копируемого текста находятся вне пределов исходной строки символов, то сообщение об ошибке не выдается. Результатом выполнения операции в первом случае будет строка нулевой длины, во втором - фрагмент от начальной позиции копирования до конца исходной строки.