Cледующие функции обеспечивают работу со строками с завершающим нулем:
Функция | Описание |
---|---|
AnsiStrComp | Сравнивает две строки с завершающим нулем. |
AnsiStrIComp | Сравнивает две строки с завершающим нулем без учета регистра. |
AnsiStrLComp | Сравнивает первые MaxLen байт двух строк с завершающим нулем, с учетом регистра. |
AnsiStrLIComp | Сравнивает первые MaxLen байт двух строк с завершающим нулем, без учета регистра. |
AnsiStrLower | Переводит все символы строки с завершающим нулем в нижний регистр. |
AnsiStrPos | Возвращает указатель на первое вхождение заданной подстроки в строку. |
AnsiStrRScan | Возвращает указатель на последнее вхождение заданного символа в строку. |
AnsiStrScan | Возвращает указатель на первое вхождение заданного символа в строку. |
AnsiStrUpper | Переводит все символы строки с завершающим нулем в верхний регистр. |
ExtractStringth | Заполняет список (массив) строк подстроками, из строки с завершающим нулем, которые отделены друг от друга разделителями. |
LineStart | Ищет конец последней полной строки (знак перевода каретки) в буффере. |
SearchBuf | Находит подстроку внутри текстового буфера. |
StrAlloc | Выделяет память под символьный буфер, заданного размера, в "куче" . |
StrBufSize | Возвращает размер символьного буфера, выделенного при помощи StrAlloc или StrNew. |
StrCat | Соединяет две строки в одну. |
StrComp | Сравнивает две строки между собой. |
StrCopy | Копирует строку. |
StrDispose | Освобождает символьный буфер, выделенный при помощи StrAlloc или StrNew. |
StrECopy | Копирует строку и возвращает указатель на коец строки. |
StrEnd | Возвращает указатель на конец строки. |
StrFmt | Форматирует одно или более значений в строке. |
StrIComp | Сравнивает две строки без учета регистра. |
StrLCat | Соединяет две строки в одну результирующую строку, с заданной максимальной длинной. |
StrLComp | Сравнивает две строки на заданной максимальной длине. |
StrLCopy | Копирует строку до заданной максимальной длины. |
StrLen | Возвращает длину строки. |
StrLFmt | Форматирует одно или более значений в строке на заданной максимальной длине. |
StrLIComp | Сравнивает две строки на заданной максимальной длине без учета регистра. |
StrLower | Переводит строку в нижний регистр. |
StrMove | Переносит блок символов из одной строки в другую. |
StrNew | Помещает строку в "кучу". |
StrPCopy | Копирует строку AnsiString (длинную строку Paskal) в строку с завершающим нулем. |
StrPLCopy | Копирует строку AnsiString (длинную строку Paskal) в строку с завершающим нулем с заданной максимальной длиной. |
StrPos | Возвращает указатель на первое вхождение заданной подстроки в строку. |
StrRScan | Возвращает указатель на последнее вхождение заданного символа в строку. |
StrScan | Возвращает указатель на первое вхождение заданного символа в строку. |
StrUpper | Переводит строку в верхний регистр. |
В Delphi имеется тип PChar, представляющий так называемую строку с завершающим нулем. Строки с завершающим нулем не содержат байтов длины. В отличие от обычных строк (см. Функции работы со строками.) они состоят из последовательности ненулевых символов, за которым следует символ NULL (#0). Никаких ограничений на длину строк с завершающим нулем не накладывается. Фактически он указывает на символ
PChar=^CHAR;
При работе со строками с завершающим нулем целесообразно использовать расширенный синтаксис языка Delphi, который задается компилятору директивой {$X+} (хотя ее можно не указывать в начале программы, т.к. она устанавливается по умолчанию). Расширенный синтаксис позволяет использовать особые правила для стандартного типа PChar и массивов с нулевым индексом. В частности стандартные процедуры Read, ReadLn, Str и Val могут быть использованы с такими массивами, а процедуры Write, WriteLn, Val, AssignFile и Rename могут применяться как с массивами, так и с символьными указателями.
Расширенный синтаксис позволяет ставить в соответствие строкам с завершающим нулем символьный массив типа
PChar=ARRAY[0..X] OF CHAR;
где X - положительное число типа Integer, определяющее количество символов в строке, не считая завершающего символа с кодом 0. В отличие от типа String, символ с индексом 0 здесь является первым символом строки, а последний символ с индексом X - завершающим символом с кодом 0.
Стандартные функции работы со стандартными строками имеют аналоги для работы с мультибайтными строками (AnsiString), которые к тому же обеспечивают прядок сортировки символов в соответствии с установками национального алфавита. В типе AnsiString символы кодируются в коде ANSI. Имена мультибайтных функций начинаются с Ansi-. Например, мультибайтная версия функции StrPos будет AnsiStrPos. Поддержка мультибайтных символов зависит от оперативной системы и базируется на ее текущей локализации.
Список литературы: