Примеры программ с действиями над строками
Задача 1. Объявить строку.
Описание переменных: s- строка, допустимая длина этой строки равна 10-ти символам.
Алгоритм решения задачи:
- Определить значения s.
- С помощью оператора := присвоить s значение.
var s: string[10];
begin
s := 'sbp';
Writeln(s);
end.
Задача 2. Вставить в заданную позицию строки другую строку.
Описание переменных:
s1, s2 – строки; i – позиция вставки.
Алгоритм решения задачи:
- Определить значения s1, s2 и i.
- С помощью процедуры insert() вставить s2 в s1, начиная с позиции i.
var s1,s2: string; i: byte; begin write('Input string 1: '); readln(s1); write('Input string 2: '); readln(s2); write('Input position: '); readln(i); insert(s2,s1,i); writeln(s1); end. Примечания: Процедура insert(s1, s, n) вставляет в строку s подстроку s1, начиная с позиции n.
Задача 3. Найти в строке определенную последовательность символов и заменить ее другой.
Описание переменных:
s, s_old, s_new – исходная строка, заменяемая подстрока, вставляемая подстрока;
i – номер символа строки, с которого начинается подстрока;
l_old – длина заменяемой подстроки.
Алгоритм решения задачи:
i – номер символа строки, с которого начинается подстрока;
l_old – длина заменяемой подстроки.
Алгоритм решения задачи:
- Ввести строку, подстроку, которую требуется заменить, и подстроку, которую требуется вставить на место прежней.
- Найти место вхождения подстроки в строку с помощью функции pos().
- Удалить старую подстроку с помощью процедуры delete().
- Вставить новую подстроку, используя процедуру insert().
var s,s_old,s_new: string; i,l_old: byte; begin write('Insert string: '); readln(s); write('What change? '); readln(s_old); l_old := length(s_old); write('What to replace? '); readln(s_new); i := pos(s_old,s); delete(s,i,l_old); insert(s_new,s,i); writeln(s); end.
Примечания: Функция Pos(subs, s) ищет вхождение подстроки subs в строку s и возвращает номер первого символа subs в s или нуль, если subs не содержится в s. Процедура Delete(s, start, len) удаляет из строки s, начиная с позиции start, подстроку длиной len. Процедура Insert(subs, s, start) вставляет в строку s подстроку subs, начиная с позиции start.
Копирование части строки
Определение длины строки
Удаление подстроки
Задача 4. Скопировать часть строки с определенной позиции и определенной длины в другую строку.
Описание переменных:
s1, s2
– первая и вторая строка;
n – позиция, с которой будет копироваться строка;
len – длина копируемой части строки.
n – позиция, с которой будет копироваться строка;
len – длина копируемой части строки.
Алгоритм решения задачи:
- Записать в переменную s1 исходную строку.
- Узнать начало второй строки и ее длину.
- Присвоить s2 результат выполнения функции copy().
Решение:
var s1,s2: string; n,len: byte; begin write('Input string: '); readln(s1); write('Place of start of copy: '); read(n); write('Length of copy: '); readln(len); s2 := copy(s1,n,len); writeln('Your copy: ',s2); end.
Примечания:Функция Copy (s, start, len) возвращает подстроку длиной len, начинающуюся с позиции start строки s.
Задача 5.
Определить длину строки, введенной пользователем.
Описание переменных:
s
– строка;
len – ее длина.
len – ее длина.
Алгоритм решения задачи:
- Введенная пользователем строка записывается в переменную s.
- Результат выполнения функции length(s) сохраняется в переменной len и, затем, выводится на экран.
Решение:
var
s: string;
len: byte;
begin
write('Input string: ');
readln(s);
len := length(s);
writeln('Its lenght is ', len,' characters.');
end.
Задача 6.
Удалить из строки ее часть с заданной позиции и заданной длины.
Описание переменных:
s
– строка;
i – номер символа в строке, начиная с которого будет осуществляться удаление;
len – длина удаляемой последовательности символов.
i – номер символа в строке, начиная с которого будет осуществляться удаление;
len – длина удаляемой последовательности символов.
Алгоритм решения задачи:
- Присвоить переменной s произвольную строку.
- Записать в i и len первый символ, с которого будет производиться удаление, и длину удаляемой последовательности.
- Применить процедуру delete() к строке s.
- Вывести на экран строку s.
Решение:
var s: string; i,len: byte; begin write('Input string: '); readln(s); write('Place of start to delete: '); readln(i); write('Length to delete: '); readln(len); delete(s,i,len); writeln(s); end.
Примечания:Процедура delete (s, start, len) удаляет из строки s, начиная с позиции start, подстроку длиной len.