length в паскале что это

Функция Length в Паскале определяет длину строки. Синтаксис:

function Length(S : AStringType) : Integer;

Второй вариант для динамических массивов:

function Length(A : DynArrayType): Integer;

Функция возвращает длину строки S, которая ограничена значением 255 для коротких строк (в классическом Паскале — это максимальная длина строки). Если S — это пустая строка, то функция возвращает 0.

Функция Length может вычислять длину строки для типов AnsiString и WideString.

Для динамических массивов функция возвращает количество элементов в массиве.

Функция определения длины строки Length также поддерживает параметры типа PChar и PWideChar. В этом случае она работает также, как функции StrLen и WStrLen соответственно. В этом случае функция вычисляет длину строки с нулевым окончанием (с завершающим нулём), а время её выполнения пропорционально длине строки, потому что завершающий нулевой символ ищется путём последовательного перебора всех символов строки.

Как определить длину строки в Паскале

Думаю, уже понятно, что сделать это можно с помощью функции Length. Например, так:

Однако есть и другой способ, о котором мало кто знает. Правда, этот способ можно использовать только с типом ShortString. Но в большинстве случаев этого строкового типа вполне достаточно.

Этот способ позволяет немного сэкономить процессорное время, так как для его использования не требуется тратить это время на вызов функции.

А суть его проста. Дело в том, что в типе ShortString длина строки хранится в нулевом элементе строки. Как известно, в Паскале отсчёт символов в строке начинается с единицы. Однако в типе ShortString есть и нулевой элемент, в котором и хранится длина строки:

Проблема только в том, что эта длина строки хранится как ASCII-код символа, и получить этот элемент можно только как символ. Но это не беда, потому что мы уже умеет преобразовывать символ в его код с помощью функции Ord.

Пример программы см. в конце статьи.

Как задать длину строки в Паскале

В некоторых случаях для экономии памяти можно задать фиксированную длину строки.

Делать это можно, когда вы точно уверены, что для ваших нужд в вашей программе потребуется, например, строка, в которой будет не более какого-то определенного количества символов.

Задать длину строки в Паскале можно так:

Затем с этими переменными можно работать как с обычными строками. Только следует помнить, что при попытке поместить, например, в s04 строку длиной более 4 символов, в эту строку будут помещены только первые четыре символа, а остальные будут отброшены.

Ниже приведён пример программы, где рассмотрены все вышеописанные случаи:

Функция Length возвращает в качестве значения длину строки. Например, если в строковой переменной «stroka» записано слово «Pascal», то Length(stroka) будет равно 6. Эта операция аналогична операции Ord(stroka[0]), которую мы разбирали в 1-м уроке. Функция Concat выполняет слияние нескольких строк в одну строку. Например, если в переменной «stroka» записано слово «Turbo», а в переменной «stroka2» записано слово «Pascal», то concat(stroka,stroka2) будет равно «Turbo Pascal».

Использование функции LENGTH.

В строке №7 выводим на экран значение функции Length(stroka). Так как в переменной «stroka» записано слово «Pascal», то на экран будет выведено число 6.

Функция Concat. Данная функция выполняет слияние нескольких строк в одну строку. Эта операция аналогична операции сцепления строк (конкатенации), которую мы рассматривали в прошлом уроке. Функция Concat соединяет строки, указанные в скобках после слова Concat в одну строку.

Использование функции CONCAT

Строка №3. Записываем 4 переменные, в которых будут храниться строковые значения.

Строка №6. Переменной «stroka1» присваиваем значение «Programmirovanie».

Строка №7. Переменной «stroka2» присваиваем значение «na».

Строка №8. Переменной «stroka3» присваиваем значение «Pascal».

Строка №9. В переменную «stroka» записываем значение функции Concat(stroka1,stroka2,stroka3). Она соединит значения, записанные в переменных stroka1,stroka2,stroka3.

Строка №10. Выводим на экран результат.

Дополнение к материалу.

В случае если при соединении строк длина получившейся строки превысит 255 символов, то строка будет усечена после 255-ого символа.

В прошлый раз мы разобрали стандартные процедуры в Pascal, применимые к строковому типу данных. Сегодня я расскажу про функции, которые применяются к этому типу данных.

Первая функция, про которую я сегодня расскажу, — функция определения длины строки Length (s). Принцип этой функции очень прост. В скобочках указывается строка, длину которой нужно найти. Возвращает эта функция одно значение — количество символов из которых состоит строка. Функция Length (s), как и все функции в паскаль возвращает значение.

Пример использования функции Length (s):

Вторая функция, о которой пойдет речь в этом уроке, — функция определения позиции первого вхождения подстроки s1 в строке s2 Pos (s1,s2). S1 — строка (подстрока), которую нужно найти, s2 — строка, в которой нужно найти подстроку. S1 может быть задана как раньше в программе, так и в самой функции (в одинарных кавычках). Если s1 не входит в s2, то функция возвратит значение 0.

Пример простейшей программы на паскаль с использованием функции pos (s1, s2):

Две, уже рассмотренные, функции возвращали значение типа integer, следующие функции, про которые я расскажу, будут возвращать тип String.

Следующая функция, применимая к типу String — функция копирования определенной подстроки из строки Copy (s, p, n). S- строка, из которой нужно скопировать, p — позиция, начиная с которой необходимо копировать, n — сколько символов надо скопировать. S — строка, типа string, p, n — целочисленные, то есть типа integer.

Пример решения задачи Паскаль, с использованием функции копирования:

Последняя функция, о которой Вы узнаете из этого урока, — функция сложения строк Concat (s1, s2, …, s). Строки s1, s2, …, si записываются друг за другом в нужную строку. Если результат превысит 255 символов, то сложение прекратится. Пример данной функции будет опубликован позже в соответствующей категории.

На сегодня урок окончен. В уроках 19 и 20 я подробно рассказал про стандартные функции и процедуры Паскаль, применимые к строковому типу данных.

Источник: computermaker.info

Техника и Гаджеты
Добавить комментарий