Действия со строками в Паскале
http://www.pascal.helpov.net/index/pascal_lines_and_chars_programming
Операция слияния (сцепления, конкатенации) применяется для соединения нескольких строк в одну, обозначается знаком «+». Операция слияния применима для любых строковых выражений, как констант, так и переменных.
Операции отношения позволяют сравнивать строки на отношение равенства (=), неравенства (<>), больше (>), меньше (<), больше или равно (>=), меньше или равно (<=). В результате сравнения двух строк получается логическое значение (true или false). Сравнение строк производится слева направо посимвольно до первого несовпадающего символа, большей считается та строка, в которой первый несовпадающий символ имеет больший код в таблице кодировки. Если строки имеют различную длину, но в общей части символы совпадают, считается, что короткая строка меньше. Строки равны, если они имеют равную длину и соответствующие символы совпадают.
Стандартные функции для работы со строками в Паскале
Copy (S, poz, n) выделяет из строки S, начиная с позиции poz, подстроку из n символов. Здесь S – любое строковое выражение, poz, n – целочисленные выражения.
Значение S |
Выражение |
Результат |
‘строка символов’ |
Copy(S,3,3) |
рок |
Concat (s1, s2,...,sn) выполняет слияние строк s1, s2,...,sn в одну строку.
Выражение |
Результат |
Concat(‘язык’, ‘’, ‘Pascal’) |
‘язык Pascal’ |
Length(S) определяет текущую длину строкового выражения S. Результат – значение целого типа.
Значение S |
Выражение |
Результат |
‘(а+в)*с’ |
Length(s) |
7 |
Pos(subS, S) определяет позицию первого вхождения подстроки subS в строку S. Результат – целое число, равное номеру позиции, где находится первый символ искомой подстроки. Если вхождение подстроки не обнаружено, то результат функции будет равен 0.
Значение S |
Выражение |
Результат |
‘предложение’ |
Pos(‘е’, S) |
3 |
‘предложение’ |
Pos(‘a’, S) |
0 |
Стандартные процедуры для работы со строками в Паскале
Delete (S, poz, n) удаляет из строки S, начиная с позиции poz, подстроку из n символов. Здесь S – строковая переменная (в данном случае нельзя записать никакое другое строковое выражение, кроме имени строковой переменной, т.к. только с именем переменной связана область памяти, куда будет помещен результат выполнения процедуры); poz, n – любые целочисленные выражения.
Исходное значение S |
Оператор процедуры |
Конечное зн-е S |
‘abcdefg’ |
Delete(s, 2, 3) |
‘aefg’ |
Insert(subS, S, poz) вставляет в строку S, начиная с позиции poz, подстроку subS. Здесь subS – любое строковое выражение, S – строковая переменная (именно ей будет присвоен результат выполнения процедуры), poz – целочисленное выражение.
Исходное значение S |
Оператор процедуры |
Конечное зн-е S |
‘рис. 2’ |
Insert(‘№’, S, 6) |
‘рис. №2’ |
Процедуры преобразования типов в Паскале
Str(x, S) преобразует число x в строковый формат. Здесь x – любое числовое выражение, S – строковая переменная. В процедуре есть возможность задавать формат числа x. Например, str(x: 8: 3, S), где 8 – общее число знаков в числе x, а 3 – число знаков после запятой.
Оператор процедуры |
Значение S |
Str (sin(1):6:4, S) |
‘0.0175’ |
Str (3456, S) |
‘3456’ |
Val(S, x, kod) преобразует строку символов S в число x. Здесь S – строковое выражение, x – числовая переменная (именно туда будет помещен результат), kod – целочисленная переменная (типа integer), которая равна номеру позиции в строке S, начиная с которой произошла ошибка преобразования, если преобразование прошло без ошибок, то переменная kod равна 0.
Тип X |
Оператор процедуры |
Значение X |
Значение kod |
Real |
Val(’12.34’, x, kod) |
12.34 |
0 |
Integer |
Val(’12.34’, x, kod) |
12 |
3 |
|