Теория недели 09.01 - 15.01.2014: Функции для работы с символьными строками

Функции для работы с символьными строками

1. Операция сложения символьных величин.

Операция сложения позволяет строить из двух символьных строк третью, состоящих из символов первой, за которой следуют символы второй. Обозначается эта операция знаком "+".

Пример 1.

Описываем строковые переменные.

var s1, s2, s3: string;

Присваиваемое значение строки заключается в апострофы. Присвоим первым двум следующие значения, а третья будет равна их склеиванию:

s1: = ' Тише воды, ';

s2:= 'нижетравы’;

s3:=s1+’’+s2;

Строка s3 имеет значение 'Тише воды, ниже травы'.

2. Длина строки

Под длиной строки понимается количество введенных символов, но она не может превышать максимально возможной длины (в описательной части). Это значение можно определить при помощи функции, результат которой целое число, равное количеству символов.

Пример 2.

s1:='12345';
s2:= 'Семеро одного не ждут’;
k1:=Length(s1);
k2:=Length(s2).

В результате значения целых переменных будут равны: kl=5, k2=21.

3. Копирование

Функция copy(str,n,m) в Turbo Pascal 7.0 – копируют т символов строки str, начиная с n-го символа, при этом исходная строка не меняется. Можно результат этой функции присваивать другой строке или сразу выводить его на экран.

Пример 3.

s1:='паровоз';
s2:='123456';
s3:=copy(s1, 5, 3);
writeln(s3);
writeln(copy(s2, 3, 2));

Значения переменной s1=’воз’. А на экране будут выведены следующие строки: воз и 34.

4. Удаление

В Turbo Pascal 7.0 для этого используется процедура Delete(str, n,m), которая вырезает из строкиstr m символов, начиная с n-го. таким образом сама строка изменяется.

Пример 4.

Дан фрагмент программы:

s:='123456';
delete(s, 3, 2);
writeln(s);

После выполнения этих операторов из строки будут удалены два символа, начиная с третьего, то есть строка будет такой: s = '1256'.

5. Замена (Вставка)

В Turbo Pascal 7.0 это можно сделать, применяя процедуру Insert(s1,s2,n) – вставка строки s1 в строку s2, начиная с п-го символа, при этом первая строка остается такой же, как и была, а вторая получает новое значение.

Пример 5.

s1;='34':
s2:='1256';
insert (s1, s2, 3);

В результате выполнения данной процедуры строка будет такой s2='123456'.

6. Числа и строки

Надо заметить, что число 25 и строка 25 – это не одно и то же. Для работы с числами и строками в Turbo Pascal 7.0 применяются две процедуры.

Str(n,s1) – переводит числовое значение n в строковое и присваивает результат строке s1, причем можно переводить как целые числа, так и вещественные.

Пример 6.1

n:=12;
str(n,s1);
- после выполнения s1 ='12';

Существует обратная операция, переводящая строковое значение в числовое.

Функция val(s, n, k) – переводит строковое значение в числовое, если данная строка действительно является записью числа (целого или вещественного), то значение k=0, а n это число, иначе k будет равно номеру символа, в котором встречается первое нарушение записи числа n.

Пример 6.2

val(‘1234',n,k) п=1234, k=0;

7. Функции преобразования типов

Иногда в программах возникает необходимость по коду определить символ и, наоборот, по символу определить его код. Для этого используют функцию: CHR(x).

Эта функция возвращает символ, соответствующий ASCII-коду числа x.

Пример 7.1

for i = 0 to 255 do
writeln( i,' ', chr(i));

Для определения кода по символу используют функцию ORD.

Пример 7.2

readln(s);
writeln(ord(s));

Домашнее задание:

Подобрать пословицу, содержащую старинные слова, вырезать из пословицы эти слова и записать значение каждого такого слова.