Стандартные процедуры и функции для работы с символьными и строковыми величинами
Строка – упорядоченная последовательность символов.
Строковая константа – последовательность символов, заключенных в апострофы:
‘ это строковая константа’, ‘268’
Строковая переменная – описывается в разделе описания переменных var : string []
Элементы строки идентифицируются именем строки с индексом, заключенным в квадратные скобки: N[i], s1[5]
Пример:
S:=‘урок информатики’
S[2] = ‘р’, s[5]=‘ ’, s[6]=‘и’
Функции:
Определение длины строки
Length(s) – определяет текущую длину строки S .
program dlina_stroki;
var a:string;
begin
writeln ( 'Введите строку' );
read(a);
write(Length(a));
end .
Пример
Функции:
Определение позиции вхождения подстроки
Pos (s1, s) – определяет, начиная с какого символа подстрока s1 содержится в строке s . Если подстрока s1 в s не обнаружена, то функция возвращает нуль.
program posiciya;
var s1:string; a:integer;
begin
s1:= 'трос' ;
a:=pos(s1, 'матрос' );
write(a);
end .
Пример
Функции:
Копирование подстроки
Copy (s, p, n) – копирует из строки s подстроку длиной n символов, начиная с позиции p .
program kopirovaniye;
var s1,s:string;
begin
s:= 'Во поле березка стояла' ;
s1:=copy(s,4,4);
write(s1);
end.
Пример
Функции:
Удаление и вставка символов
Delete (s,p,n) – удаляет из строки s подстроку длиной n символов, начиная с позиции p .
Insert (s1, s2,p) -вставка строки s1 в строку s2 , начиная с позиции p .
Функции:
Удаление и вставка символов
program udalenie_vstavka;
var s1,s:string;
begin
s:= 'Журавли на юг летят' ;
s1:= ' на Полесье' ;
writeln(s);
delete(s,8,6);
writeln(s);
insert(s1,s,8);
writeln(s);
end .
Пример
Функции:
Преобразование регистра
Uppercase (s) – преобразует строку в верхний регистр
Lowercase (s) – преобразует строку в нижний регистр.
При использовании функций Upcase и Lowcase преобразование и вывод выполняются посимвольно в цикле с параметром, который изменяется от 1 до length (s) .
Функции: Преобразование регистра
Составить программу, которая изменяет регистр введенной с клавиатуры строки.
program preobrasovanie;
var s:string; i:integer;
begin
write( 'Введите строку: ' );
read(s); {ввод строки}
writeln(uppercase(s)); {вывод строки в верхнем регистре}
writeln(lowercase(s)); {вывод строки в нижнем регистре}
for i:=1 to length(s) do {посимвольное преобразование и вывод}
if (i mod 2=1) then write(upcase(s[i])) {нечетные в верхнем регистре}
else write(lowcase(s[i]));;
end.
Пример
Функции: Преобразование типов данных
Str (x, s) – переводит числовое значение x в строковое и присваивает результат строке s .
program preobrasovanie_danih;
var sa,sb:string; a,b:integer;
begin
write( 'Введите два числа: ' );
readln(a,b);
writeln( 'Сумма чисел: ', a, '+' ,b, ' = ' , a+b);
str(a,sa);
str(b,sb);
writeln( 'Сцепление строк: ' , sa, ' + ' , sb, ' = ' ,sa+sb);
end .
Пример
Пример: Дана строка. Удалить в ней все пробелы.
program str1 ;
var s1, s2: string ; i :integer;
begin
writeln ( 'введите строку' );
readln (s1);
s2:= '' ; {пустая строка}
for i:=1 to length (s1) do
if s1[i] ‘ ‘ then s2:=s2+s1[i];
writeln (‘новая строка= ' ,s2);
end.
Задачи:
- Изменить в романе имя героя с Пьера на Виктора
- Реализовать на компьютере возможность автоматической замены слова «граматика» на слово «грамматика».
- Дано слово. Проверить, является ли оно палиндромом. (Слева направо и справа налево читается одинаково).
Домашнее задание
§ 5 примеры 1, 2