ВУЗ:
Составители:
Рубрика:
51
Хотя и разрешается использовать нулевой элемент для определения
длины строки, но, как правило, для этого используют стандартную функцию
LENGTH(A).
Отдельный элемент совместим по типу с переменной или константой
типа char, т.е. можно представить следующим образом:
var c:char; S:string;
begin
S:=′tag′
c:=S[1];
c:=′x′; S[2]:=c;
К строковым данным применимы следующие операции:
1. Операция сцепления (конкатенация). Обозначается символом «+».
При выполнении операции сцепления к первой строке справа добавляется
вторая строка, причём размер полученной строки ограничивается 255
символами.
var x,y:string[6]; z:string[12];
begin
x:=′Turbo′; y:=′Pascal′;
z:= x+′ ′+y;
writeln(z);
end.
Будет напечатано: Turbo Pascal.
Можно присвоить значение
z:=х; хотя их типы различны при присваивании
z:=′техника′; в переменную х запишутся только первые
х:=z; шесть символов
writeln(х);
Будет напечатано: техник
Если в результате сцепления длина строки стала больше заданной
длины строки, то лишние символы отсекаются справа.
2. Операция сравнения строк. Т.е. можно выполнять операции
отношения: <, >, =, <=, >=, < >. Строки сравниваются посимвольно слева на
право. При сравнении анализируются коды соответствующих символов.
Строки считаются равными только при одинаковом наборе символов и
одинаковой длине.
Если при посимвольном сравнении окажется, что один символ больше
другого (его код больше), то строка, его содержащая, тоже считается
52
большей. Остатки строки и их длины не играют роли. Любой символ всегда
больше «пустого места».
Если длины строк равны, то происходит сравнение строк посимвольно
слева направо.
Если две сравниваемые строки имеют различную длину, но совпадают
вплоть до последнего символа более короткой строки, последняя строка
считается меньшей.
Результат выполнения операции сравнения строк
имеет булевский
тип.
′Pascal′ = ′pascal′ false
′+′ < ′-′ true
′Pas_ _ _′ > ′Pas′ true
Строки различных длин совместимы между собой в операторах
присваивания и сравнения, но «капризно» ведут себя при передаче в
процедуры и функции.
Использование типа String в подпрограммах
В заголовках процедур и функций тип формального параметра следует
указывать одним именем:
Недопустимо
:
procedure das (x:string[10]);
procedure das (x:string); - в этом случае формальный параметр
воспринимается как string[255].
Следует оформлять следующим образом:
type st = string[10];
procedure das (x:st);
Имеется существенное различие, передаётся ли параметр по значению
или по ссылке.
Директива компилятора:
{$V±} Проверка строки VAR локальная.
По умолчанию V+ (включена)
Директива V устанавливает, должна ли проверяться фактическая
длина передаваемого по ссылке параметра типа string. V+ означает, что для
Хотя и разрешается использовать нулевой элемент для определения большей. Остатки строки и их длины не играют роли. Любой символ всегда длины строки, но, как правило, для этого используют стандартную функцию больше «пустого места». LENGTH(A). Если длины строк равны, то происходит сравнение строк посимвольно Отдельный элемент совместим по типу с переменной или константой слева направо. типа char, т.е. можно представить следующим образом: Если две сравниваемые строки имеют различную длину, но совпадают var c:char; S:string; вплоть до последнего символа более короткой строки, последняя строка begin считается меньшей. S:=′tag′ Результат выполнения операции сравнения строк имеет булевский c:=S[1]; тип. c:=′x′; S[2]:=c; К строковым данным применимы следующие операции: ′Pascal′ = ′pascal′ false 1. Операция сцепления (конкатенация). Обозначается символом «+». ′+′ < ′-′ true При выполнении операции сцепления к первой строке справа добавляется ′Pas_ _ _′ > ′Pas′ true вторая строка, причём размер полученной строки ограничивается 255 символами. Строки различных длин совместимы между собой в операторах var x,y:string[6]; z:string[12]; присваивания и сравнения, но «капризно» ведут себя при передаче в begin процедуры и функции. x:=′Turbo′; y:=′Pascal′; z:= x+′ ′+y; writeln(z); Использование типа String в подпрограммах end. Будет напечатано: Turbo Pascal. В заголовках процедур и функций тип формального параметра следует Можно присвоить значение указывать одним именем: z:=х; хотя их типы различны при присваивании Недопустимо: z:=′техника′; в переменную х запишутся только первые procedure das (x:string[10]); х:=z; шесть символов procedure das (x:string); - в этом случае формальный параметр writeln(х); воспринимается как string[255]. Будет напечатано: техник Следует оформлять следующим образом: Если в результате сцепления длина строки стала больше заданной type st = string[10]; длины строки, то лишние символы отсекаются справа. procedure das (x:st); 2. Операция сравнения строк. Т.е. можно выполнять операции Имеется существенное различие, передаётся ли параметр по значению отношения: <, >, =, <=, >=, < >. Строки сравниваются посимвольно слева на или по ссылке. право. При сравнении анализируются коды соответствующих символов. Директива компилятора: Строки считаются равными только при одинаковом наборе символов и {$V±} Проверка строки VAR локальная. одинаковой длине. По умолчанию V+ (включена) Если при посимвольном сравнении окажется, что один символ больше Директива V устанавливает, должна ли проверяться фактическая другого (его код больше), то строка, его содержащая, тоже считается длина передаваемого по ссылке параметра типа string. V+ означает, что для 51 52
Страницы
- « первая
- ‹ предыдущая
- …
- 24
- 25
- 26
- 27
- 28
- …
- следующая ›
- последняя »