Операции со строками
1 путь - обработка всей строки как единого целого.
Пример: stroka:= ‘это - строка!’;
2 путь - строка, как составной объект, состоящий из отдельных символов.
Пример: stroka:= ‘это’ + ‘ - ‘ + ‘строка’ + ‘ ! ‘;
(объединение или сцепление строк).
Для доступа к отдельному символу в строке необходимо указать имя строки и в квадратных скобках номер позиции символа в строке.
Пример:
stroka [5] - пятый символ в переменной stroka.
F:= stroka [1]
Троковые процедуры и функции
1
Length (<имя переменной>) - определяет фактическую длину текстовой строки, хранящейся в указанной переменной, включая все пробелы (а не величину предельного размера строки, установленную при описании).
Пример:
Var St:string[20];
Значение St |
Выражение |
Значение |
St :=‘123456789’ |
Length (St) |
9 |
St := ‘Лето’ |
Length (St) |
4 |
П
word - 255 симв
word := ‘лето’
length (word) - 4 симв
ример:var word: string;
begin
writeln ('введите слово -');
readln (word);
writeln ('это слово состоит из ', length (word), ‘ букв‘);
end.
2
UpCase (<буква>) - преобразует любой символ из строчного в прописной (т.е. работает с каждым отдельным символом).
(Русские литеры не обрабатываются!)
Пример:
Значение Ch |
Выражение |
Значение |
Ch :=‘d’ |
UpCase (Ch) |
‘D’ |
Ch := ‘w’ |
UpCase (Ch) |
‘W’ |
F := UpCase (Ch)
Пример:
var
word: string;
i,к: byte;
begin
word:=’урок informatiki‘;
к := length (word);
for i:=l to к do
word[i]:=upcase(word[i]);
writeln (word);
end. {выводится текст "урок INFORMATIKI"}
3
Copy( St,Poz,N) - копирует из строки St фрагмент (подстроку) длиной в N символов, начиная с позиции Poz.
Пример:
Значение St |
Выражение |
Значение |
‘Пришел’ |
Copy (St,4,3) |
‘шел’ |
‘Классификация’ |
Copy (St,1,5) |
‘Класс’ |
Пример:
Program zadacha (input,output);
var
word: string [20];
word1, word2, word3: string [20];
begin
word : = ‘форматирование’ ; writeln (word); wordl : = copy (word,1,5); writeln (wordl); {форма}
word2 := copy (word,6,3); writeln (word2); {тир}
word3 := copy (word,8,3); writeln (word3); {ров}
end.
4
Pos (St1,St2) - поиск в строке St1 подстроки St2 (фрагмента) и возвращает номер позиции, с которой этот фрагмент начинается.
Пример:
Program zadacha;
var
word: string [100]; wordl: string [20];
position: byte;
begin
word : = ‘форматирование’ ;
word1 : = ‘тир’ ;
position := pos (word, word1);
if position <>0 then
writeln ('Фрагмент', wordl, 'содержится в слове', word, 'начиная с позиции', position,'. ')
end. {на экране:
Фрагмент тир содержится в слове форматирование начиная с позиции 6.}
! Большие и маленькие буквы считаются различными символами !
INSERT и DELETE - позволяют вставлять фрагмент из одной строки в другую или удалять его из строки.
Insert (St1,St2, Poz) - вставка строки St1 в строку St2, начиная с позиции Poz.
Delete (St,Poz,N) - удаляет из строки St фрагмент, состоящий из N символов, начиная с позиции Poz.
Пример:
Program zadacha;
Var
Word: string [100]; Wordl: string [20];
Begin
Word : = ‘Математика‘;
W
Математика
тематика
система
система
riteln (Word);
Delete (Word, 1, 2);
Writeln (Word); {тематика}
Delete (Word, 5, 4);
Writeln (Word); {тема}
Wordl :='сис';
Insert (Wordl, Word, 1);
Writeln (Word); {система}
END.