«

»

Pascal. Строки

Строка в 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.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вы можете использовать эти теги HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Проверка на человечность *