Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
informatika_2.doc
Скачиваний:
3
Добавлен:
26.09.2019
Размер:
148.99 Кб
Скачать

47. Операции и функции для строковых данных. Примеры

Операции над строками.

В Турбо Паскале имеется два основных способа обработки переменных типа String. Первый способ предлагает обработку всей строки как единого целого, то есть как единого объекта. Второй способ позволяет рассматривать строку как составной объект, состоящий из отдельных символов, то есть элементов типа Char, которые при обработке доступны каждый в отдельности.

Склеивание.

Под склеиванием понимается последовательное объединение нескольких строк.

Пример:

var

Str1, Str2, Str3: String[20];

begin

Str1:='Не имей сто рублей,';

Str2:='а имей сто друзей';

Str3:= Str1+ ' ' + Str2

...

end.

Строка Str3 примет значение 'Не имей сто рублей, а'. В примере максимальная длина строки Str3 равна 20 символам, поэтому будут взяты только первые 20 символов суммы строк, а остальные рассматриваться не будут.

Турбо Паскаль позволяет выполнять операции объединения (сцепления) нескольких строк в процессе присваивания какой – либо переменной значений:

Str3:= 'Не имей сто рублей,'+'а имей' + ' сто друзей'.

В результате выполнения операции переменной Str3 будет присвоено то же значение, что и в предыдущем примере.

"Склеить" строки можно также при помощи функции Concat(Str1, Str2,...., StrN) .Подробнее с этой функцией познакомимся дальше.

Сравнение.

Турбо Паскаль позволяет выполнять операции сравнения двух строк. Сравнение происходит посимвольно слева направо: сравниваются коды соответствующих символов до тех пор, пока не нарушится равенство или не кончится одна из строк (или обе сразу), при этом сразу делается вывод о знаке неравенства. Две строки называются равными, если они равны по длине и совпадают посимвольно.

Пример:

'Bag' < 'bag' {Ord ('B')< Ord ('b')};

'beg' > 'bag' {Ord ('e')> Ord ('a')};

'bags' > 'bag' {длина первой строки больше};

'bag ' > 'bag' {длина первой строки больше};

'Портфель' = 'Портфель' (равны по длине и совпадают посимвольно).

Для сравнения можно использовать любые операции отношения (<,>,=,<>,<=,>=) и их комбинации в условных операторах. Их результат одно из двух значений: True или False.

По отношению к отдельному символу строки возможны все те же операции , что и к переменной типа Char.ъ=

Стандартные процедуры и функции .

Удаление.

Для удаления строки фрагмента используется процедура Delete(Str,n,m), которая вырезает из строки Str, m символов начиная с n-го, таким образом, строка изменяется.

Пример:

Str1:='Не имей сто рублей,';

Delete(Str1,4,9);

Writeln(Str1).

Таким образом после выполнения оператора Delete(Str1,4,9) из строки 'Не имей сто рублей,' будут удалены четыре символа начиная с девятого, то есть строка Str1 станет такой 'Не имей рублей,'.

Вставка.

Для вставки подстроки в строку используется процедура Insert(Str1, Str2, n), которая вставляет строку Str1в строку Str2 начиная с n- го символа. При этом строка Str1 остается такой как была, а строка Str2 получает новое значение.

Пример:

Str1:='Не имей сто рублей,';

Str2 :='тысяч ';

Insert(Str1, Str2, 13);

В результате выполнения данной процедуры строка Str2 станет такой 'Не имей сто тысяч рублей' .

Такой же результат будет после выполнения следующих операторов:

Str1:='Не имей сто рублей,';

Insert('тысяч ', Str2, 13);

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

Функция Copy(Str,n,m) копирует начиная с n-го символа m символов строки Str, при этом исходная строка не меняется.

Пример:

Str1:='Не имей сто рублей,';

Str2:='а имей сто друзей';

Str3:=Copy(Str1,13,6);

Writeln(Str3);

Writeln(Copy(Str2,12,6));

Переменной Str3 присвоится значение 'рублей' . На экран будут выведены строки:

рублей

друзей

^

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]