Строка в Pascal – это последовательность символов заключенных в апострофы. Переменную строкового типа данных определяет слово string:
Var <имя_переменной>: string[<длина строки>];
Длина строки может и не указываться, тогда она будет равна максимально возможному количеству символов — 255.
Также как и массив, каждый элемент строки имеет свой индекс, и может быть отдельно где-либо задействован. Например, так выведется 7-ой элемент строки sing, которая содержит выражение ‘сингулярность’:
write(sing[7]); { символ ‘я’ }
Для вывода строки указывается строка без скобок и их содержащего:
write(sing);
Объединить строки можно при помощи операции +, а также воспользовавшись функцией Concat. Следующая программа сначала выводит строку, в которой объединены две другие, а затем выводит все три имеющиеся строковые переменные посредством функции Concat.
1
2 3 4 5 6 7 8 9 10 |
program stroki;
uses crt; var sing, quant, sq: string; begin quant:=‘Квантовая’; sing:=‘cингулярность’; sq:=quant+‘ ‘+sing; writeln(sq); write(concat(sq, ‘ ‘,quant,‘ ‘, sing)); end. |
Сравнение двух строк в Паскале осуществляется операциями отношения (<,>,=,<>,<=,>=). При этом первый символ первой строки сравнивается с первым второй строки, потом второй со вторым, третий с третьим и т. д. до тех пор, пока не нарушится равенство (т. е. число символов, либо их количество в строках окажется разным), или операция не завершится.
‘stroke’ < ‘stroke’ {вернет false}
‘stroke’ > ‘str’ {вернет true}
‘stroke’ = ‘stroke’ {вернет true}
Удалить необходимые символы из строки можно с помощью процедуры Delete. В общем виде она имеет вид:
Delete(<строка>, <начиная с этого символа>, <количество>)
Вот так выглядит элементарная программа, в которой используется процедура Delete:
1
2 3 4 5 6 7 8 |
program stroki;
uses crt; var sing, quant, sq: string; begin quant:=‘Квантовая’; delete(quant, 6, 4); write(quant); end. |
После ее выполнения на экране появится слово «Квант».
Для вставки подстроки в строку в Паскале есть процедура Insert.
lnsert(<строка 1>, <строка 2>, <начиная с этого символа>)
Строка 1 вставляется в строку 2, начиная с указанного символа. Так, например, для вставки нашей строки sing в строку quant нужно пописать следующий код.
quant:=’Квантовая’;
sing:=’ cингулярность’;
insert(sing, quant, 10);
Длина строки – это количество символов содержащихся в переменной строкового типа. Чтобы узнать ее можно воспользоваться функцией Length, возвращающей целое число. Форма записи данной функции такая:
Length(<строка>);
В Паскале для копирования строк предусмотрена функция Copy:
Copy(<строка>, <начиная с этого символа>, <количество>);
Пример программы, использующей функцию Copy:
1
2 3 4 5 6 7 8 9 |
program stroki;
uses crt; var sing, quant, sq: string; begin sq:=‘Квантовая cингулярность’; quant:=copy(sq, 1, 9); sing:=copy(sq, 10, 14); write(quant, sing); end. |
Из sq было произведено копирование в две другие строки.
Функция Pos определяет позицию подстроки в строке, и в случае удачи возвращает целое число соответствующее номеру элемента, с которого начинается вхождение. Общий вид функции:
Pos(<подстрока>, <строка>);
Преобразование числового значения осуществляется посредством процедуры Str:
Str(<числовая величина>, <строка>);
Пример программы:
1
2 3 4 5 6 7 8 9 |
program stroki;
uses crt; var s: string; c: integer; begin c:=1000; str(c, s); write(s); {s = ‘1000’} end. |
Преобразовать строку в числовое значение можно при помощи процедуры Val:
Val(<строка>, <числовая величина>, <переменная>);
Строка должна состоять из числовых символов. Переменная нужна для записи номера первого ошибочного символа, в случае его наличия, либо нуля.
Пример кода:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 |
program stroki;
uses crt; var s: string; c, err: integer; begin s:=‘1000’; val(s, c, err); writeln(c); {c = 1000} writeln(err); {err = 0} s:=’12p23′; val(s, c, err); writeln(c); {c = 12} write(err); {err = 3} end. |