Кодинг
★ Рубрика: Кодинг
★ Тема: Pascal

Простейшие строковые алгоритмы

В Турбо Паскале определены данные строкового типа - String.

Пример. Определение переменных строкового типа:
Var
str : String;
line : String[80];
После слова String может указываться длина строки (максимальная). Если длина не указана, то считается, что она переменная и определяется числом символов, записанных на место переменной типа String при вводе или при-сваивании. Это число хранится в нулевом байте соответствующей переменной.

Операция "Конкатенация строк" изображается символом + .

Пример. Пусть переменные s1, s2 и s3 имеют тип String.
s1='UpByte,'; s2=' .Net'; 
s3 := s1 + s2; 
s3='UpByte.Net'.
Пример. Сложение нескольких строк.
Program Plus_Demo ;
 var s1, s2 : string;
begin
 s1 := ’Мир ’; 
 s2 := s1 + s1 + ’и еще раз ’ + s1 + ’!’ ;
 writeln (s2); {Напечатается: Мир Мир и еще раз Мир! }
end.
Функция Copy (строка,начальный номер,длина) – выделение подстроки заданной "длины" из "строки", начиная с символа, определенного "начальным номером". Если параметр "длина" больше остатка строки, то выделяется остаток;, если параметр "начальный номер" превышает длину строки, то результатом будет пустая строка. Пример.
s1 := 'сайт UpByte';
s2 := Copy(s1,6,6);{Результат: s2 получит значение 'UpByte'}
Пример.
Program CopyDemo;
 var s1, s2 : string;
begin
 s1 := 'doroga';
 s2 := copy (’doroga’, 3, 4);
 writeln (s2); { Будет напечатана строка ’roga’ }
end.
Процедура Delete(строка,номер,длина) – удаляет из "строки" подстроку заданной "длины", начиная с заданного "номера":

Пример.
S := 'Сайт UpByte.Net';
Delete(S,12,3);
{Результат: S получит новое значение 'Сайт UpByte'}
Функция Length(строка) – возвращает длину строки (количество символов в ней).
Length (’kolobok’) - результат 7 ;
Length (’’) - результат 0.
Функция POS(подстрока,строка) – возвращает номер символа, начиная с которого "подстрока" встречается в "строке" (если не встречается, то функция возвращает ноль). Прописные и строчные буквы считаются различными.

Пример.
N := Pos('ра', 'Абракадабра'); {N получит значение 3}
M := Pos('Ра', 'Абракадабра'); {M получит значение 0}
Обращение к одному символу строки: Например, если st = ’Раз Два Три!’ , то:
st[1] равно ’Р’, 
st[2] равно ’а’, 
st[3] равно ’з’, 
st[9] равно ’Т’.
Номером символа может быть и переменная целого типа, например:
program SymbolsNr;
 var s : string;
 i : integer;
begin
 s := ’Красота!’;
 i := length (s); { Вычисление длины }
 writeln (s[i]) { Напечатается '!' }
end.
Используя квадратные скобки можно не только читать значение указанного символа, но и записывать на его место новый символ. Например:
st:= ’Раз Два Три!’; { st = ’Раз Два Три!’ }
st[4] := ’-’; { st = ’Раз-Два Три!’ }
st[8] := ’-’; { st = ’Раз-Два-Три!’ }
st[1] := ’Щ’; { st = ’Щаз-Два-Три!’ }
 Похожие публикации: Pascal

Войдите, чтобы добавить Ваш ответ. [ Регистрация | Вход ]