|
End. Две строковые величины можно состыковывать. Эта операция называется конкатенацией и обозначается знаком "+". Например, результатом выполнения следующих команд: R:= 'kadabra'; H:= 'abra'; S:=H+R; в переменной S будет значение 'abrakadabra'.
Рассмотрим пример. "Во введенной строке заменить все вхождения подстроки 'ABC' на подстроки 'KLMNO'".
Program Str6;
Var
S : String;
A : Byte;
Begin
Writeln('Введитестроку');
Readln(S);
While Pos('ABC',S)<>0 Do
Begin
A:= Pos('ABC',S);
Delete(S,A,3);
Insert('KLMNO',S,A)
End;
Writeln(S)
End.
Составьте программу, для реализации следующих фрагментов, изучите как работают предложенные функции.
s := 'Система TurboPascal';
s2 := copy(s, 1, 7); {s2 будет равно 'Система'}
s3 := copy(s, 9, 5); {s3 будетравно 'Turbo'}
s4 := copy(s, 15, 6); {s4 будетравно 'Pascal'}
s := 'Система TurboPascal';
delete(s,8,6); {s будет равно 'Система Pascal'}
s := 'Система Pascal';
insert('Turbo ',s,9); {s будетравно 'Система Turbo Pascal'}
s := 'Система TurboPascal';
x1 := pos('Pascal', s); {x1 будетравно 15}
x2 := pos('Basic', s); {x2 будетравно 0}
SumStr := 'Турбо'+'Паскаль'+'7.0'
Составьте программу и определите ее результат.
Program StringLength;
Var
S :string; {макс. длина строки = 255}
Begin
S:=''; {пустая строка}
writeln (S,' ',SizeOf(S),' ',Length(S)); {размер=256, длина=0}
S:='Пример длинной строки'; {присваиваем строке некоторое значение}
writeln (S,' ',SizeOf(S),' ',Length(S)); {размер=256, длина=21}
Delete(S,7,8); {удаляем из строки 8 символов, начиная с 7}
writeln (S,' ',SizeOf(S),' ',Length(S)); {размер=256, длина=13}
S:=S+' символов'; {добавляем к строке строку}
writeln (S,' ',SizeOf(S),' ',Length(S)); {размер=256, длина=22}
End.
Задание 1. Составьте программу для решения одной из следующих задач. Определить, какое из двух слов длиннее и на сколько.
Определить, является ли какое-нибудь из двух слов частью другого.
Определить, есть ли в записи квадрата данного числа цифра 1.
Поменять в слове первую и последнюю буквы.
Если в слове нечетное число букв, то удвоить среднюю.
По последнему символу определить тип предложения (повествовательное, вопросительное, восклицательное).
Определить, является ли данный символ латинской буквой.
Удалить из слова среднюю букву (или две средних).
Задание 2. Составьте программу для решения одной из следующих задач. Заменить в арифметическом выражении знаки "+" на знаки "-", а знаки "-" на знаки "+".
Удалить все буквы "я" в данном слове.
Удвоить все четные буквы слова.
Удалить все предлоги "на" в данном предложении.
Вставить после каждой буквы данного слова букву "о".
Удалить лишние пробелы в данном предложении.
Удвоить каждую букву данного слова.
Заменить каждую точку многоточием (т.е. тремя точками).
Задание 3. Вызовите программу, составленную Вами при выполнении задания 2, и переделайте ее так, чтобы в ней использовалась только одна строковая переменная.
Контрольные вопросы
Как в программе определяется строковый тип данных?
Перечислите известные вам функции для работы со строковыми переменными?
Лабораторная работа 10
Тема:Использование стандартных функций и процедур для работы со строками
Цель:приобрести практические навыки работы со строковыми переменными
Оборудование: ПК, ПО TurboPascal
Теоретические сведения Функция Copy(S, Pozition, N) выделяет из строки S подстроку длиной N символов, начиная с позиции Pozition. Здесь N и Pozition – целочисленные выражения.
Пример: Значение S Выражение Результат
‘Мама мыла раму’ Copy(S, 6, 4) ‘мыла’
‘Маша ела кашу’ Copy(S, 1, 8) ‘Маша ела’
Функция Concat(S1, S2, …, SN) выполняет сцепление (конкатенацию) строк S1, S2, …, SN в одну строку.
Пример: Выражение Результат
Concat('Маша ', 'ела ', 'кашу') 'Маша ела кашу'
Функция Length(S) – определяет текущую длину строки S. Результат — значение целого типа.
Пример: Значение S Выражение Результат
'test-5' Length(S) 6
'(A+B)*C' Length(S) 7
Функция Pos(S1, S2) – обнаруживает первое появление в строке S2 подстроки S1. Результат — целое число, равное номеру позиции, где находится первый символ подстроки S1. Если в S2 подстроки S1 не обнаружено, то результат равен 0.
Пример: Значение S2 Выражение Результат
'abcdef' Pos('cd', S2) 3
'abcdcdef' Pos('cd', S2) 3
'abcdef' Pos('k', S2) 0
Процедура Delete(S, Poz, N) – удаление N символов из строки S, начиная с позиции Poz.
Пример: Исходное значение S Оператор Конечное значение S
'abcdefg' Delete(S, 3, 2) 'abefg'
'abcdefg' Delete(S, 2, 6) 'a'
В результате выполнения процедуры уменьшается текущая длина строки в переменной S.
Процедура Insert(S1, S2, Poz) – вставка строки S1 в строку S2, начиная с позиции Poz.
Пример: Исходное значение S2 Оператор Конечное значение S2
'ЭВМРС' Insert('IBM-', S2, 5) 'ЭВМ IBM-PC'
'Рис. 2' Insert('N', S2, 6) 'Рис. N 2'
|
|
|