Вставка Используется процедура Insert(Str1, Str2, n) – вставка строки Str1 в строку Str2, начиная с n-го символа. При этом первая строка остается такой же, как и была, а вторая получает новое значение.
Quot;Удаление. Для этого используется процедура Delete(Str,n ,m), которая вырезает из строки Str m-символов, начиная с n –го, таким образом сама строка изменяется.
Стандартные процедуры и функции
Паскаль предоставляет в распоряжение пользователя целый ряд встроенных функций и процедур, предназначенных для обработки строк. Рассмотрим наиболее важные из них.
После выполнения этих операторов из строки будут удалены четыре символа, начиная с третьего, то есть строка будет такой: Strl:=’ABGH’.
Пример. Дан фрагмент программы:
Strl:=’ABCDEFGH’;
Delete(Str1,3,4);
Writeln(Str1);
В результате выполнения данной процедуры строка будет
Str2:=’abABCDEFGHcdefgh’
Этот же результат будет и после выполнения такой последовательности операторов: Str2:=’abcdefgh’; Insert(’ABCDEFGH’, Str2,3);
Strl:=’ABCDEFGH’;
Str2:=’abcdefgh’;
Insert(Strl, Str2,3);
Функция Copy(Str,n,m) – копирует m символов строки Str, начиная с n-го символа, при этом исходная строка не меняется. Можно результат функции присваивть другой строке или сразу выводить на экран.
Значение переменной Str3=’DEF’. А на экране будут выведены следующие строки:
DEF
def
Strl:=’ABCDEFGH’;
Str2:=’abcdefgh’;
Str3:=Copy(Str1,4,3);
Writeln(Str3);
Writeln(Copy(Str2,4,3));
aДлина строки. Под длинной строки понимается количество введенных символов, но она не может превышать максимально возможной длины (в описательной части). Это значение можно определить при помощи функции Length(Str), результат которой целое число, равное количеству символов.
Str1:=’ABCDEGH ’;
Str2:=’мама мыла раму’;
k1:= Length(Str1);
k2:= Length(Str2);
В результате значения целых переменных будут равны: к1=8, к2=14.
Подстрока. Существует функция, определяющая позицию подстроки в строке – Pos(Str1,Str2). Результат этой функции – целое число, и оно определяет номер первого элемента, с которого начинается первое вхождение подстроки Str1в строку Str2. Если такой подстроки нет, то значение функции равно нулю.
Str1:=’CDF’;
Str2:=’ABCDFGH’;
k1:= Pos(Str1,Str2);
k2:= Pos(Str2,Str1);
Переменная k1 равна 3, так как Str1 встречается в Str2 с третьего символа, а значение к2 равно 0, так как такой подстроки в строке нет.
к1:= Pos('ша',’наша Маша громко плачет’)
В этом случае значение к1 равно 3, так как выбираем номер первого элемента первой встречи подстроки.
¦Числа и строки. Надо заметить, что число 13 и строка ’13’ – это не одно и то же. Для работы с числами и строками применяются две процедуры.
Str(N, Str1) – переводит числовое значение N в строковое и присваивает результат строке Str1, причем можно переводить как целые числа, так и вещественные.
Примеры.
Str(1234, str1) – после выполнения Str1=’1234’;
Вторая процедура выполняет обратное действие.
Val(Str, N, K) – переводит строковое значение в числовое, если данная строка действительно является записью числа (целого или вещественного), то значение К=0, а N – это число, иначе К будет равно номеру символа, в котором встречается первое нарушение записи числа, N.
Примеры.
Val(‘1234’, N, K) – N=1234, K=0
Val(‘234.56’, N, K) – N=234.56, K=0
Val(‘2.345e2’, N, K) – N=2.345e2, K=0
Val(‘12-45’, N, K) – K=3, так как знак «-» в записи чисел может быть только на первом месте.
Val(‘2,567m’, N, K) --- K=2, так как разделительным знаком между целой и дробной частями является точка, а не запятая;
Val(‘5.87c-5’, N, K) --- K=5, так как символ «с» не должен быть в записи вещественного или целого числа.
Домашнее задание №1 по теме «Строки»
1. Дано слово. Если его его длина нечетная, то удалить среднюю букву, в противном случае – две средних буквы.
2. Дано предложение. Удалить из него все символы с n-го по m-й.
3. Проверить, является ли полиндромом строка после удаления из нее всех пробелов.
Примеры: аргентина манит негра. А роза упала на лапу азора.
4. В слове имеются только 2 одинаковых буквы. Найти их и их позицию.