Строковый тип
Строка – это последовательность символов.
При использовании в выражениях строка заключается в апострофы.
‘Информатика’, ‘abc’, ‘1357’
Строка символов может состоять из одного или нескольких символов, а также не содержать ни одного символа (пустая строка или строка нулевой длины).
Количество символов в строке (длина строки) может динамически изменяться от 0 до 255.
2
Строковый тип
Для определения данных строкового типа используется идентификатор string, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Если это значение не указывается, то по умолчанию длина строки равна 255 байт.
Переменную строкового типа можно определить через описание типа в разделе определения типов или непосредственно в разделе описания переменных.
А также строковые данные могут использоваться в программе также в качестве констант.
Недопустимо применение строковых переменных в качестве селектора в операторе case.
3
Формат записи
1. Type <имя типа>:string[макс. длина строки];
Var<идентификатор>:<имя типа>;
2. Var<идентификатор>:string<макс. длина строки>;
Const address=’ул. Смолина, 24a’; {строковая константа}
Type flot=string[125];
Var fstr:flot; {описание с заданием типа}
St:string;{по умолчанию длина строки=255}
St2, st3:string[50];{длина строки 50}
Natf:string[280];{ошибка, длина строки превышает 255}.
4
Операция сцепления (+)
применяется для сцепления нескольких строк в одну результирующую строку.
Выражение | Результат |
‘A’+’T’+’ ‘+’386’ | ‘AT 386’ |
Следует учитывать, что в операциях сцепления длина результирующей строки не должна превышать 255.
5
Операции отношения (=, <>, <, >, <=, >=)
проводят сравнение двух строковых операндов и имеют более низкий приоритет, чем операция сцепления, т.е. вначале всегда выполняются все операции сцепления, если они присутствуют, и лишь потом реализуются операции отношения.
Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в стандартной таблице обмена информацией.
Результат выполнения операций отношения над строковыми операндами всегда имеет логический (булевский) тип.
6
uses crt;
var a,b,c:string[20]; i:integer;
begin
write('В строке='); readln(a);
write('Заменить '); readln(b);
write(' на '); readln(c);
i:=1;
repeat
if copy(a,i,length(b))=b
then a:=copy(a,1,i-1)+c+copy(a,i+length(b),length(a));
i:=i+1;
until i>length(a)-length(b)+1;
write('a=',a);
end.
6. В заданной строке символов все слоги ФОР замените на слоги ТИК.
21
uses crt;
var a:string; i,n1, n2:integer;
begin
write(‘Строка='); readln(a);
n1:=0; n2:=0;
for i:=1 to length(a) do
begin
if (copy(a,i,1)='k') and (n1=0) then n1:=i;
if (copy(a,i,1)='k') then n2:=i;
end;
writeln('n1=',n1, ' n2=',n2);
end.
7. Найдите позицию первой и последней буквы К, входящих в символьную строку.
22
Контрольные вопросы
Как в программе обозначается строковая константа, как определяется строковая переменная?
Какой может быть максимальная длина строки?
Что является результатом каждой функции, предназначенной для выполнения операций над строками?
Что является результатом действия функции length(s)?
Что является результатом действия функции Pos(s)?
24
© ООО «Знанио»
С вами с 2009 года.