Массивы символов – строки

В памяти компьютера могут обрабатываться не только числа, но и символы. Символ занимает в памяти компьютера один байт и описывается в тексте программы служебным словом char. Символы, как и любые однотипные данные могут быть объединены в массивы. Обработка символьных массивов практически не отличается от обработки числовых. Удобнее всего обрабатывать символьную информацию, представленную в виде строк. Для этого в современные версии языка программирования введён дополнительный стандартный тип - String.

Тип string oпределяется описанием string = array [Index] of Char, но являясь встроенным, явного описания в тексте программы не требует. Этот тип относится к так называемым массивам с нулевой базой, для которых тип индексов определяется как Index =0.. N, где N – количесво символов, размещаемое в массиве. Таким образом, в нем содержится одна “лишняя” компонента, значение которой равно реальному количеству заполненных компонент. Максимально возможная длина строковой переменной равна 255. Существует и другая форма определения типа string и описания соответствующих переменных, в которой явно указывается верхняя граница типа индексов.

Подобные переменные с точки зрения их обработки могут рассматриваться двояко:

· допускается обработка всей строки как единого цело­го (возможность присвоить перемен­ной строковую константу или выполнять объедине­ние нескольких строк при присваивании);

· переменную можно рассматривать как обычный массив, состоящий из компонент типа char, которые доступны при обработке каждая в отдельности.

Для строк определены также операции сравнения (=, <>, >, <, <=, >=). Сравнение строк производится слева направо до первого несовпадающего символа: длиннее считается та строка, в которой первый несовпадающий символ имеет больший номер в таблице кодов (буквы в таблице кодов расположены по возрастанию). Если строки имеют различную длину, но в общей части символы совпадают, считается, что короткая строка меньше.

С типом string связывается определенный набор стандартных процедур и функций:

Функция Length возвращает фактическую дли­ну текстовой строки, передаваемой ей в качестве фактического параметра. При подсчете фактической длины строки учитываются все вхо­дящие в нее символы, в том числе и пробелы.

Функция Upcase – функция, преобразующая одиночный символ из строчной формы в прописную (ее параметр – переменная строкового типа). Она предполагает обработку отдельных символов, в связи с чем, для обработки строки сим­волов, размещенной в переменной типа string, приходится использовать цикл.

Функция Cору. С помощью функции Cору можно скопировать фрагмент неко­торой строки. Для этого при вызове функции в круглых скобках через запятую необходимо ука­зать три параметра: имя строковой переменной, из которой должен извлекаться копируемый фраг­мент; позицию, с которой в этой переменной начинается фрагмент; число копируемых компонент. В результате функция возвращает указанный фрагмент.

Функция Pos. С помощью функции Pos можно найти в строковой переменной задан­ный фрагмент. Если заданный фрагмент в ней присутствует, то функция возвращает номер позиции, с которой этот фраг­мент начинается. При отсутствии фрагмента функция возвращает ноль. При вызове функции в качестве параметров необходимо ука­зать имя строковой переменной, в которой отыскивается фраг­мент, и имя переменной-фрагмента или соответствующую строковую константу. Функция "Pos" требует полного сов­падения искомого фрагмента и фрагмента строки, в которой произ­водится поиск. При этом нужно учитывать, что большие и малые буквы, а также совпадающие по начертанию буквы латинского алфавита и кириллицы считаются различными символами.

Процедуры Insert и Delete. С помощью этих процедур можно вставить одну строку в другую и удалить фрагмент из строки.

Оператор процедуры Insert(Str1,Str2,N) указывает, что в строку Str2 перед N-ой позицией необходимо, вставить строку Str1.

Оператор процедуры Delete(Str,M,N) позволяет удалить в строке Str фрагмент, начинающийся с позиции M и имеющий длину N.

Процедуры STR и VAL

Str(x[:f] [:n],s) – преобразует числовое значение x (тип real) в строку s (возможно задание формата; в этом случае f – число позиций в числе, n – количество позиций после точки).

Val (s,x,err) – превращает строковое значение s (тип string) в числовую переменную x (тип real), err (тип integer) возвращает номер позиции, в которой произошла ошибка преобразования, или 0, если ошибки не было.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: