Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник.docx
Скачиваний:
36
Добавлен:
21.12.2018
Размер:
2.15 Mб
Скачать

Переворот строки

Задача:

Перевернуть строку, т.е. последние символы должны стать первыми, а первые последними.

Описание переменных:

s – строка;

n – середина строки;

c – меняемый символ.

Алгоритм решения задачи:

  1. Найти середину строки.

  2. Перебрать символы строки от начала до ее середины:

  3. очередной символ сохранить в переменной c;

  4. а на его место записать противоположный с конца;

  5. на место противоположного записать сохраненный в c.

Программа на языке Паскаль:

var

s: string;

i,n: byte;

c: char;

begin

write('Input string: ');

readln(s);

n := length(s) div 2;

for i := 1 to n do begin

c := s[i];

s[i] := s[length(s)-i+1];

s[length(s)-i+1] := c;

end;

writeln(s);

readln

end.

Замена подстроки в строке

Задача:

Найти в строке определенную последовательность символов и заменить ее другой.

Описание переменных:

s, s_old, s_new – исходная строка, заменяемая подстрока, вставляемая подстрока;

i – номер символа строки, с которого начинается подстрока;

l_old – длина заменяемой подстроки.

Алгоритм решения задачи:

  1. Ввести строку, подстроку, которую требуется заменить, и подстроку, которую требуется вставить на место прежней.

  2. Найти место вхождения подстроки в строку с помощью функции pos().

  3. Удалить старую подстроку с помощью процедуры delete().

  4. Вставить новую подстроку, используя процедуру 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);

readln

end.

Примечания:

Функция Pos(subs, s) ищет вхождение подстроки subs в строку s и возвращает номер первого символа subs в s или нуль, если subs не содержится в s.

Процедура Delete(s, start, len) удаляет из строки s, начиная с позиции start, подстроку длиной len.

Процедура Insert(subs, s, start) вставляет в строку s подстроку subs, начиная с позиции start.

Вставка подстроки

Задача:

Вставить в заданную позицию строки другую строку.

Описание переменных:

s1, s2 – строки;

i – позиция вставки.

Алгоритм решения задачи:

  1. Определить значения s1, s2 и i.

  2. С помощью процедуры 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);

readln

end.

Примечания:

Процедура insert(subs, s, start) вставляет в строку s подстроку subs, начиная с позиции start.

Удаление подстроки

Задача:

Удалить из строки ее часть с заданной позиции и заданной длины.

Описание переменных:

s – строка;

i – номер символа в строке, начиная с которого будет осуществляться удаление;

len – длина удаляемой последовательности символов.

Алгоритм решения задачи:

  1. Присвоить переменной s произвольную строку.

  2. Записать в i и len первый символ, с которого будет производиться удаление, и длину удаляемой последовательности.

  3. Применить процедуру delete() к строке s.

  4. Вывести на экран строку 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);

readln

end.

Примечания:

Процедура delete (s, start, len) удаляет из строки s, начиная с позиции start, подстроку длиной len.