Мегаобучалка Главная | О нас | Обратная связь


Работа со строками. 8.1. Хранение строк типа string




 

Под строкой принято понимать линейную последовательность символов. В языке Pascal для хранения строк применяется тип string, работу с которым мы и рассмотрим в этом разделе.

Примеры описания строковых переменных:

 

var S : string;

S1, a : string;

 

Строка хранится как одномерный массив элементов типа char, причем индексация массива начинается с нуля.

 

0 1 2 3 4 5 6 255
#6 ‘P’ ‘A’ ‘S’ ‘C’ ‘A’ ‘L’    

 

В нулевую ячейку заносится символ, код которого равен текущей длине строки. На рисунке он обозначен #6. Подобное обозначение в тексте программы означает символ с кодом 6. По умолчанию максимальная длина строки составляет 255 символов. Напомним, что для хранения символа ASCII отводится один байт. Это значит, что максимальное значение кода не может превышать 255. Этим и обусловлено ограничение на максимальную длину строки.

К элементам строки можно обращаться по их номеру, как к элементам массива символов. Например, оператор

S[4] := ‘A’;

приведет к занесению символа ‘A’ в четвертую позицию строки. При этом длина строки не изменится.

 

К нулевой ячейке массива-строки можно обращаться, как и к любой другой:

 

var a:string;

....

readln(a);

writeln('Длина строки = ', ord(a[0]));

 

Можно сказать, что тип string в смысле хранения эквивалентен следующему типу символьного массива

 

 type TLine = array [0..255] of char;

 

Строки типа string – статические. Это означает, что для хранения такой строки выделяется память в размере 256 байт (под 256 ячеек типа char).

При описании строк можно указывать максимально допустимую длину, или иными словами определять объем памяти, отводимый для хранения строки. В общем случае объявление пользовательского строкового типа выглядит так:

 

type <имя типа> = string[<макс. длина строки>]

 

Например:

 

type TStr1 = string[10]; {тип строки с максимальной длиной 10

                                      символов}

TStr2 = string[100]; {тип строка с максимальной длиной 100

                                    символов}

 

Также допускается описывать непосредственно строки-переменные требуемой длины, например:

 

var S1 : string[10]; {строка с максимальной длиной 10 символов}

 

Для ввода и вывода строковых величин используются все те же стандартные процедуры read, readln, write, writeln.

 

var S : string;

begin

readln(S);

writeln(S);

end.

 

В тексте программы на языке Pascal строковые константы заключаются в апострофы, например:

 

const name=’Ivan’;

var a: string[50];

begin

  a:=’Petr’;

end.

 

Сформировать «пустую» строку можно двумя способами:

 

S := ‘’;

S[0] := #0;

 

Заметим, что неотображаемые символы, такие как символ пробела или табуляции, являются значимыми.

 

Пример. Поменять последовательность символов в строке на обратную.

var S : string; i : integer; C : Char; begin readln(S); for i:=1 to ord(S[0]) div 2 do begin C := S[i]; S[i] := S[ord(S[0])-i+1]; S[ord(S[0])-i+1] := C; end; writeln(S); end.

 

8.2 Строковые выражения

 

Выражения, в которых операндами служат строковые данные, называются строковыми. Над строковыми данными определены операция сцепления (склеивания, конкатенации) и операции отношения.

Операция сцепления (+) служит для склеивания нескольких строк в одну. Длина результата не должна превышать максимально допустимую длину результирующей строки. Применительно к строковым переменным и константам допустимы следующие выражения:

 

const S1=’DFSDF’;

var S,S2,S3 : string;

 S: = S+’ABC’+S1+’+’;

 S := #66 + ‘AAA’ + S2 + S3;

 

К строкам применимы все операции отношения. Приоритет операций отношения более низкий, чем у операции сцепления. Две строки считаются равными в том случае, если они имеют одинаковую длину и содержат одинаковую последовательность символов.

Сравнение строк производится посимвольно (на самом деле сравниваются не символы, а их коды). При достижении первого несовпадающего символа меньшей считается та строка, чей символ имеет меньший код ASCII. Поэтому не удивляйтесь, что ‘ AAAAAAAAA ’ < ‘ B ’.

 






Популярное:
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (104)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)