2. «Обработка строковых данных»
План темы:
1. Понятие символа и строки.
2. Описание символов и строк в программе.
3. Операция сцепления строк.
4. Операции сравнения строк.
5. Строковые процедуры и функции.
6. Примеры обработки строк.
3. •Символ – это элемент кодовой таблицы
компьютера (буква, знак, управляющий
символ). Каждый символ имеет свой
уникальный численный код.
• Каждый символ занимает в памяти 1
байт (в кодировке ANSI), или 2 байта (в
кодировке Unicode).
4. •Строка - это последовательность (массив)
символов.
• ‘При использовании в выражениях
символ и строка-константа заключается в
кавычки-апострофы’.
• Количество символов в строке (длина
строки) может динамически изменяться
от 0 до 255 (статические строки), или
практически неограниченны
(динамические строки).
5. •Для определения переменных
символьного типа используются
служебные слова: Char, AnsiChar (1 байт);
WideChar (2 байта). Пример:
Var c1:Char;
c2:WideChar;
6. •Для определения переменных строкового
типа используются служебные слова
String или ShortString, за которым может
следовать заключенное в квадратные
скобки значение максимально
допустимой длины строки (статические
строки), или LongString (динамические
строки). Пример:
Var S1, S2 : String[20];
S : LongString;
8. (=, <>, >, <, >=, <=) проводят сравнение двух строк.
Сравнение строк производится слева направо до
первого несовпадающего символа, и та строка
считается больше, в которой первый
несовпадающий символ имеет больший номер в
кодовой таблице. Результат выполнения операций
имеет логический тип - (True, или False).
9. • Delete(St,Poz,N) - удаление N символов
строки St, начиная с позиции Poz.
Delete(‘Алгоритм’,1,4) = ‘ритм’
• Insert(Str1, Str2, Poz) - вставка строки
Str1 в строку Str2, начиная с позиции
Poz.
Insert(‘форма’,’интика’,3)=‘информатика’
10. • Str (N,St) - преобразование числового значения
величины N и помещение результата в строку St.
После N может записываться формат
преобразования.
Str(5,S) ==> S = ‘5’;
Str(pi:4:2,S) ==> S = ‘3.14’
• Val (St,N,Cod) - преобразует строку St в величину
целочисленного или вещественного типа и
помещает результат в N. В переменной Cod
возвращается код операции (0 - нет ошибки; n - n-й
символ не может быть частью числа).
Val(‘5.2’,R,Code) ==> R = 5.2; Code = 0
Val(‘10 А кл.’,R,Code) ==> R- не определено; Code = 3
11. Copy (St,Poz,N) - возвращает из строки St
подстроку длиной N символов, начиная с
позиции Poz.
Copy(‘информатика’,3,5) = ‘форма’
• Chr(N) - возвращает символ с кодом N.
Chr(192) = ‘А’
• Ord(C) – возвращает код символа C.
Ord(‘А’) = 192
• Trim(St) – возвращает строку St, удалив в ней
начальные и конечные пробелы.
12. • Length (St) - вычисляет и возвращает текущую
длину в символах строки St. Результат имеет
целочисленный тип.
Length(‘Я учусь программировать!’) = 24
• Pos (Str1,Str2) - обнаруживает первое появление
в строке Str2 подстроки Str1. Возвращаемый
результат имеет целочисленный тип и равен
номеру той позиции в строке Str2, где находится
первый символ подстроки Str1. Если в Str2
подстроки Str1 не найдено, результат равен 0.
Pos(‘о’,’программирование’) = 3
Pos(‘не’,’алгоритм’) = 0
13. •AnsiUpperCase(St) - возвращает строку,
преобразовав все буквы к верхнему регистру
(большие буквы).
AnsiUpperCase(‘Среда Delphi!’) = ‘СРЕДА DELPHI!’
• AnsiLowerCase(St) - возвращает строку,
преобразовав все буквы к нижнему регистру
(маленькие буквы).
•AnsiLowerCase(‘Среда Delphi!’) = ‘среда delphi!’
14. 1. Задан текст. Заменить в нём ‘и’ на ‘i’.
Подсчитать количество таких замен.
var S:string;
i, k : Integer;
Begin
{…Ввод строки S}
k := 0;
For i := 1 to length(S) do
If S[i] = ‘и’ then begin
S[i] := ‘i’;
k := k + 1;
end;
{…Вывод S, k}
End.
15. 2. Вывести в компонент Memo кодовую
таблицу отображаемых символов.
var i:Integer;
Begin
Memo1.Lines.Clear;
For i := 32 to 255 do
Memo1.Lines.Add(chr(i) + ‘ = ‘ + IntToStr(i));
End.