Что такое string в паскале
Что такое string в паскале
Для обработки строковой информации в Турбо Паскаль введен строковый тип данных. Строкой в Паскале называется последовательность из определенного количества символов. Количество символов последовательности называется длиной строки. Синтаксис:
Строковые константы записываются как последовательности символов, ограниченные апострофами. Допускается формирование строк с использованием записи символов по десятичному коду (в виде комбинации # и кода символа) и управляющих символов (комбинации ^ и некоторых заглавных латинских букв).
Пустой символ обозначается двумя подряд стоящими апострофами. Если апостроф входит в строку как литера, то при записи он удваивается.
Переменные, описанные как строковые с разными максимальными длинами, можно присваивать друг другу, хотя при попытке присвоить короткой переменной длинную лишние символы будут отброшены.
Выражения типа char можно присваивать любым строковым переменным.
Над строковыми данными определена операция слияния (конкантенации), обозначаемая знаком +. Например:
В этом примере переменная c приобретет значение ‘TurboPascal’.
Процедуры и функции для работы со строками
В системе Turbo Pascal имеется несколько полезных стандартных процедур и функций, ориентированных на работу со строками. Ниже приводится список этих процедур и функций с краткими пояснениями. Функция возвращает в качестве результата значение текущей длины строки-параметра
Пример.
Функция выполняет слияние строк-параметров, которых может быть произвольное количество. Каждый параметр является выражением строкового типа. Если длина строки-результата превышает 255 символов, то она усекается до 255 символов. Данная функция эквивалентна операции конкатенации «+» и работает немного менее эффективно, чем эта операция.
Функция возвращает подстроку, выделенную из исходной строки s, длиной count символов, начиная с символа под номером index.
Процедура удаляет из строки-параметра s подстроку длиной count символов, начиная с символа под номером index.
Пример.
Процедура предназначена для вставки строки source в строку s, начиная с символа index этой строки.
Пример.
Функция производит поиск в строке s подстроки substr. Результатом функции является номер первой позиции подстроки в исходной строке. Если подстрока не найдена, то функция возвращает 0.
Волгоградский государственный педагогический университет
Кафедра алгебры, геометрии и информатики
Строковый тип данных (STRING) в паскаль служит для проведения операций с текстом, состоящим из различных символов. В одну переменную типа String можно записать до 255 символов. По сути это массив, содержащий в себе элементы типа char (символьный тип данных). Переменная string описывается так же, как и переменные типа real или integer.
Если вы хотите указать максимальное количество символов, которое может содержать в себе строка, то это делается в квадратных скобках:
Для строки применимы процедуры read (readln) и write (writeln), строку можно как считать, так и вывести целиком:
Если при считывании строки вводимое слово длиннее, чем длина строки, то запишется только то количество символов, которое указано в квадратных скобках.
К отдельным элементам строки обращаются так же, как и к элементам массива, указывая в квадратных скобках номер символа.
При присваивании строке или символу какого-либо значения оно указывается в одинарных кавычках (‘).
Пример программы на паскаль с использованием типа string:
Данная программа выводит слово «Пример».
Строки можно складывать, копировать и так далее, но об этом в одном из следующих уроков. В паскаль работа со строками будет рассматриваться позже.
Недавно писал программу, которая высчитывала по какому маршруту отправляли Кондиционеры в Симферополь, вот там без строк никак не обойтись.
Строки в Паскале
Строка в Pascal – это последовательность символов заключенных в апострофы. Переменную строкового типа данных определяет слово string:
Длина строки может и не указываться, тогда она будет равна максимально возможному количеству символов — 255.
Также как и массив, каждый элемент строки имеет свой индекс, и может быть отдельно где-либо задействован. Например, так выведется 7-ой элемент строки sing, которая содержит выражение ‘сингулярность’:
Для вывода строки указывается строка без скобок и их содержащего:
Объединить строки можно при помощи операции +, а также воспользовавшись функцией Concat. Следующая программа сначала выводит строку, в которой объединены две другие, а затем выводит все три имеющиеся строковые переменные посредством функции Concat.
Удалить необходимые символы из строки можно с помощью процедуры Delete. В общем виде она имеет вид:
Вот так выглядит элементарная программа, в которой используется процедура Delete:
После ее выполнения на экране появится слово «Квант».
Для вставки подстроки в строку в Паскале есть процедура Insert.
Строка 1 вставляется в строку 2, начиная с указанного символа. Так, например, для вставки нашей строки sing в строку quant нужно пописать следующий код.
insert(sing, quant, 10);
Длина строки – это количество символов содержащихся в переменной строкового типа. Чтобы узнать ее можно воспользоваться функцией Length, возвращающей целое число. Форма записи данной функции такая:
В Паскале для копирования строк предусмотрена функция Copy:
Пример программы, использующей функцию Copy:
Из sq было произведено копирование в две другие строки.
Функция Pos определяет позицию подстроки в строке, и в случае удачи возвращает целое число соответствующее номеру элемента, с которого начинается вхождение. Общий вид функции:
Преобразование числового значения осуществляется посредством процедуры Str:
Преобразовать строку в числовое значение можно при помощи процедуры Val:
Строка должна состоять из числовых символов. Переменная нужна для записи номера первого ошибочного символа, в случае его наличия, либо нуля.
Что такое string в паскале
Итак, что такое строка? Фактически строка — это массив, состоящий из символов. В строку могут входить все ASCII-символы (эти символы показаны в конце статьи). То есть машина, улица-сезам, три головы,13 стульев, 12ррр443р43г. **:па,542″№;%:? а а 69866 — все это строки. Строки объявляются так
Как вы видите, длину строки можно как указать, так и оставить неуказанной. Однако тут следует запомнить,что максимальная длина строки — 255 символов и больше вы в одну строку ну никак не запихнете. То есть, когда вы не указываете размер строки — она принимает максимальный размер в 255 символов. Обратиться к символу в строке просто — необходимо только знать его порядковый номер. Порядковый номер начинается с 1 и заканчивается соответственно 255 (помним, что строка не может быть длиннее 255 символов). Например имеем строки
Этот пример показывает, что строка может состоять из любых символов кодировки ASCII. Обратите внимание! Пробел также считается символом.Например строка g состоит из одного символа — пробела. Также существует ситуация, когда в строке совсем нет символов. Тогда говорят,что строка содержит пустой символ. В нашем примере это строка d. Следует также добавить, что стандартный Turbo Pascal не поддерживает кириллицу (русские буквы) в отличие от PascalABC и Free Pascal, которые без проблем работают с ними.
Теперь о сравнении строк. Тут дело обстоит немного сложнее. Cледует запомнить, что сравнение строки производится слева направо и обязательно посимвольно. Это значит, что в первую очередь надо сравнить первые элементы, затем вторые, третьи и т.д. Если при посимвольном сравнении сравнивается пустой символ и любой другой символ, то пустой символ всегда будет меньше. Теперь самое главное. Сравнивают не сами символы а коды этих символов: чей код больше, тот символ и будет «больше». Таблица символов представлена ниже.
Для наглядности сравним несколько строк. Имеем
Строковый тип данных в Паскале
Строки в Паскале – это данные типа string. Они используются для хранения последовательностей символов. В Паскале длина стандартной строки ограничена 255 символами. Под каждый символ отводится по одному байту, в котором хранится код символа. Кроме того, каждая строка содержит еще дополнительный байт, в котором хранится длина строки.
Если заранее известно, что длина строки будет меньше 255 символов, то программист может сам задать максимальную длину строки.
Примеры описания строк:
Длина строки хранится в первом ее байте, индекс которого равен 0.
Объявление типизированной константы для типа string осуществляется так:
Существует понятие пустой строки, то есть строки, в которой нет ни одного символа. Пустая строка обозначается двумя рядом стоящими апострофами (например, st : = » ).
Операции над строками
Строки можно присваивать друг другу. Если максимальная длина переменной слева меньше длины присваиваемой строки, то лишние символы справа отбрасываются.
Строки можно объединять с помощью операции конкатенации, которая обозначается знаком +.
Строки можно сравнивать друг с другом с помощью операций отношения. При сравнении строки рассматриваются посимвольно слева направо, при этом сравниваются коды соответствующих пар символов. Строки равны, если они имеют одинаковую длину и посимвольно эквивалентны. В строках разной длины существующий символ всегда больше соответствующего ему отсутствующего символа. Меньшей будет та строка, у которой меньше код первого несовпадающего символа (вне зависимости от максимальных и текущих длин сравниваемых строк).
Имя строки может использоваться в процедурах ввода-вывода. При вводе в строку считывается из входного потока количество символов, равное длине строки или меньшее, если символ перевода строки (который вводится нажатием клавиши Enter) встретится раньше. При выводе под строку отводится количество позиций, равное ее фактической длине.
Можно осуществлять коррекцию любого символа строковой переменной, для чего в соответствующем операторе достаточно указать имя переменной типа string, вслед за которым в квадратных скобках задается номер ее элемента (например, str [ 3 ] : = ‘j’ ).
Элементы строки нумеруются с единицы, так как в каждой строковой переменной имеется элемент с номером 0, в котором в виде символа хранится длина текущей строки. Чтобы узнать текущую длину, достаточно применить функцию ord к нулевому элементу строки. Например:
Нулевой элемент строковой переменной можно корректировать. При этом будет изменяться текущая длина строки. Например, выражение str [ 0 ] : = #50 устанавливает текущую длину равной 50.