Шаг 55.
Операции над операндами типа PChar
На этом шаге мы перечислим функции, обрабатывающие значения типа PChar.
Напомним, что тип PChar является специальным указательным типом, введеным для поддержки
строк с завершающим нулем и имеющим следующее описание:
Object Pascal при включенной директиве {$Х+} позволяет использовать для работы с указателями типа PChar дополнительные,
по сравнению с другими указательными типами, операции суммирования (+) и вычитания (-).
Эти операции используются для увеличения и уменьшения смещения указателя на заданную величину. Кроме того, операцию вычитания допускается применять
для вычисления разности смещений двух указателей типа PChar.
procedure TForm1.FormCreate(Sender: TObject);
var
Str1, Str2, Res : PChar;
i, j : Word;
begin
. . . .
Res := Str1 + i; //Res будет указывать на i символов дальше, чем Str1.
Res := Str2 - i; //Res будет указывать на i символов ближе, чем Str2.
j := Strl - Str2; //j будет равняться числу символов, расположенных
//между символами, на которые указывают Strl и Str2.
//Strl и Str2 должны указывать на один и
//тот же символьный массив.
end;
Стандартный синтаксис Object Pascal позволяет при сравнении указателей определять только их равенство или неравенство.
Расширенный синтаксис (при включенной директиве {$Х+}) допускает к значениям типа PChar применять также и операции <, >, <= и >= . Но, при условии,
что два сравниваемых указателя указывают на один и тот же массив символов.
Для поддержки операций со строками с завершающим нулем в Object Pascal используются следующие функции стандартного модуля SysUtils:
- Функция StrAlloc - выделяет для строки с завершающим нулем буфер максимальной длины минус единица.
- Функция StrBufSize - возвращает максимальное число символов, которые могут быть сохранены в буфере, выделенном функцией StrAlloc.
- Функция StrCat - добавляет одну строку к концу другой строки и возвращает указатель на результирующую строку.
- Функция StrComp - сравнивает две строки S1 и S2. Если S1 < S2, то результатом будет отрицательное число; если S1 = S2, то
результатом будет число, равное 0; если S1 > S2, то результатом будет положительное число.
- Функция StrCopy - копирует значение одной строки в другую.
- Функция StrDispose - уничтожает строку, распределенную ранее с помощью функции StrNew.
- Функция StrECopy - копирует значение одной строки в другую. Возвращает указатель на конец результирующей строки.
- Функция StrEnd - возвращает указатель на завершающий строку нулевой символ.
- Функция StrIComp - сравнивает две строки аналогично StrComp, но без различия регистра символов.
- Функция StrLCat - присоединяет исходную строку к концу целевой строки. При этом обеспечивается, что длина результирующей строки не превышает заданного максимума. Возвращается указатель на строку-результат.
- Функция StrLComp - сравнивает строки с заданной максимальной длиной.
- Функция StrLCopy - копирует заданное число символов из исходной строки в результирующую строку и возвращает указатель на результирующую строку.
- Функция StrLen - возвращает длину строки.
- Функция StrLIComp - сравнивает две строки с заданной максимальной длиной без различия регистра символов.
- Функция StrLower - преобразует строку в нижний регистр и возвращает указатель на нее.
- Функция StrMove - перемещает последовательность символов из исходной строки в целевую строку и возвращает указатель на целевую строку.
- Функция StrNew - выделяет для строки память в динамической области.
- Функция StrPas - преобразует строку с завершающим нулем в строку типа String.
- Функция StrPCopy - копирует строку типа String в строку с завершающим нулем и возвращает указатель на строку с завершающим нулем.
- Функция StrPLCopy - копирует максимальное число символов строки String в строку с завершающим нулем.
- Функция StrPos - возвращает указатель на первое вхождение заданной подстроки в строке, или nil, если искомая подстрока в строке не содержится.
- Функция StrRScan - возвращает указатель на последнее вхождение заданного символа в строку, или nil, если символ в строке отсутствует.
- Функция StrScan - возвращает указатель на первое вхождение указанного символа в строку, или nil, если символ в строке отсутствует.
- Функция StrUpper - преобразует строку в верхний регистр и возвращает указатель на нее.
На следующем шаге мы рассмотрим операции над множествами.
Предыдущий шаг
Содержание
Следующий шаг