Функция Str

Функция Str преобразует численное значение аргумента в его строковое представление.

Например,

Program Demo_Str;

Var

S: string;

A: integer;

Begin

A:= 1234;

S:= Str (A);

WriteLn (‘Строковое значение равно ’, S);

End.

Хранение строк

Наряду с символами, представляющими содержание, в строке храниться её длина. Так как каждый символ строки занимает байт и для хранения длины реально введённой строки тоже требуется один байт памяти, то реальная длина области памяти (в байтах), выделяемая для переменной типа string, всегда на единицу больше декларированной.

Поле, хранящее реальную длину введённой строки, можно изменять, то есть присваивать данному полю некоторое значение.

Например,

Character_string[0]:= Chr (7);

или

Character_string[0]:= #7;

При использовании метода присваивания в качестве присваиваемой величины может выступать величина типа BYTE, преобразованная с помощью префикса # или функции CHR в величину типа CHAR. Такое преобразование необходимо, так как каждый элемент строки, включая показатель длины, должен представляться как символ

Например, внутреннее представление строковой переменной St=’ABCD’:

St=’ABCD’
St[0] St[1] St[2] St[3] St[4] St[5]
#4 ‘A’ ‘B’ ‘C’ ‘D’ ‘0’

Задача 10.1. Объявим строку, состоящую из 60 (_) символов. Выполнить вывод на экран фрагментов этой строки различной длины посредством изменения показателя длины строки.

Program Demo_String;

Var

Words: string[60];

Length_word: byte;

Begin

{Строка, состоящая из 60 символов}

Words:= ‘____________________________________________________________’;

For Length_word:= 1 to 12 do

Begin

{Установка длины строки}

Words[0]:= Chr (Length_word*5);

{Вывод строки указанной длины}

Writeln (Words);

{Вывод пустой строки}

Writeln;

End;

End.


Задача 10.2. Преобразовать строчные литеры русского и английского алфавитов в прописные.

Program My_Function_UpCase;

Uses crt;

Var

Words: string;

Procedure Mu_UpCase (var Words: string);

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

var i: byte; {Данная переменная необходима для организации цикла}

Procedure String_Manipulation (var Words: string; I: byte);

{Данная процедура осуществляет посимвольное преобразование строки}

Begin

words[i]:= UpCase (Words[i]);

Case Words[i] of

‘а’: Words[i]:= ‘А’;

‘б’: Words[i]:= ‘Б’;

‘в’: Words[i]:= ‘В’;

{…} {Далее идут операторы для всех остальных литер русского алфавита}

end;

end;

Begin

for I:= 1 to Length (Words) do String_Manipulation (Words, i);

end;

Begin

ClrScr;

Words:= ‘’;

My_UpCase (Words);

Writeln (Words);

end.

Вопросы для самопроверки

1. Дайте определение строковых переменных?

2. Какие операции применимы к переменным строкового типа?

3. Какие можно осуществить операции с элементами строки?

4. Объясните назначение и применение функций и процедур, используемых при работе со строковыми переменными, таких как:

a. функция Length();

b. функция UpCase();

c. функция Copy();

d. функция Pos();

e. процедура Insert();

f. процедура Delete();

g. функция Val();

h. функция Str()?

5. Каким образом организуется хранение информации о длине строки?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: