Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Algoritmy.doc
Скачиваний:
3
Добавлен:
27.04.2019
Размер:
550.91 Кб
Скачать

Стандартные подпрограммы для работы с символами

var   c: char;   x: byte; ord(c) - функция, возвращающая код символа с (0..255) chr(x) - функция, возвращающая символ с кодом x

Функции chr и ord - взаимно противоположные:

ord(chr(x))=x chr(ord(c))=с

Если n - целое от 0 до 255, то вместо chr(n) можно использовать запись #n. Например, #32 - символ с кодом 32.

Другие подпрограммы:

succ(c) - функция, возвращающая следующий символ; pred(c) - функция, возвращающая предыдущий символ; Inc(c) - процедура увеличения кода символа на 1; Dec(c) - процедура уменьшения кода символа на 1; Inc(c,n) - процедура увеличения кода символа на n; Dec(c,n) - процедура уменьшения кода символа на n.

Виды строк в Delphi

Cтроки shortstring

sizeof(shortstring)=256

Как строка shortstring хранится в памяти.

К символам строки можно обращаться по индексу: s[i] возвращает i-тый символ строки s.

Length(s) - функция, возвращающая длину строки s. Для shortstring возвращает содержимое нулевого байта - байта длины строки.  Для shortstring Length(s)=ord(s[0]).

Можно также при описании указывать размер памяти под строку shortstring:

type str20=shortstring[20];

Такая строка будет занимать 20 байт памяти плюс 1 байт на длину строки.

Строки ansistring могут занимать до 2 Гб. Они растут динамически по мере заполнения. Переменные типа ansistring представляют собой указатели на реальные строки. Поэтому при их присваивании копируется лишь значение указателя.

var: s1,s: ansistring; ... s1:=s; // копируется указатель

Однако, если после этого часть одной из строк меняется (например, меняется один символ), то происходит полное копирование строки и в копии происходит изменение. Такое отложенное копирование называется копированием при записи.

В Delphi есть также тип widestring строки, состоящей из widechar (2 байта - Unicode).

Основные подпрограммы для работы со строками

Length(s) - функция, возвращающая длину строки s. SetLength(s,n) - процедура, устанавливающая длину строки s равной n (для shortstring эквивалентно s[0]:=chr(n)). Copy(s,from,len) - функция, возвращающая подстроку s с позиции from длины len . Delete(s,from,len) - процедура, удаляющая из строки s len символов с позиции from. Pos(subs,s) - функция, возвращающая позицию первого вхождения подстроки subs в строку s. Insert(subs,s,form) - процедура, вставляющая подстроку subs в строку s с позиции from. Str(x,s) - процедура, преобразующая целое или вещественное выражение x к строковому представлению и записывающая результат в строку s. Val(s,x,errcode) - процедура, преобразующая строку s к целому или вещественному значению и записывающая результат в целую или вещественную переменную x. Переменная errcode  - целая; если преобразование невозможно, то в errcode содержится номер первого символа, вызвавшего ошибку.

Основные подпрограммы для работы со строками (Delphi)

(требуется подключение модуля SysUtils)

IntToStr(i) - функция, преобразующая целое x в строку (аналогично FloatToStr - для вещественных). StrToInt(s) - функция, преобразующая строку s к целому; может генерировать исключение. (аналог - StrToFloat). TrimeLeft(s) - удаляет все начальные пробелы в строке s. Trimeleft(s) - удаляет все заключительные пробелы в строке s. Trim(s) - удаляет все начальные и заключительные пробелы в строке s. AnsiUpperCase(s), AnsiLowerCase(s) - преобразует к верхнему или нижнему регистру с учетом национальной кодировки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]