Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Представление массивом символов



В этом подходе строки представляются массивом символов; при этом размер массива хранится в отдельной (служебной) области. От названия языка Pascal, где этот метод был впервые реализован, данный метод получил название Pascal Strings.

Преимущества:

— программа в каждый момент времени «знает» о размере строки, и операции копирования и получения размера строки выполняются достаточно быстро;

— каждый символ строки может изменяться;

— на программном уровне можно следить за выходом за границы строки при её обработке;

— возможно быстрое выполнение операции вида «взятие N-ого символа с конца строки».

Недостатки:

— проблемы с хранением и обработкой символов произвольной длины;

— увеличение затрат на хранение строк — значение «длина строки» так же занимает место и в случае большого количества строк маленького размера может существенно увеличить требования алгоритма к оперативной памяти;

— ограничение максимального размера строки. В современных языках программирования это ограничение скорее теоретическое, так как обычно размер строки хранится в 32-битовом поле, что даёт максимальный размер строки в 2 147 483 647 байт (2 гигабайта).

Представление с помощью «завершающего байта».

Одно из возможных значений символов алфавита (как правило, это символ с кодом 0) выбирается в качестве признака конца строки, и строка хранится как последовательность байтов от начала до конца. Есть системы, в которых в качестве признака конца строки используется не символ 0, а байт 0xFF (255) или код символа «$».

Метод имеет три названия — ASCIIZ (символы в кодировке ASCII с нулевым завершающим байтом), C-strings (наибольшее распространение метод получил именно в языке Си) и метод нуль-терминированных строк.

Преимущества:

— отсутствие дополнительной служебной информации о строке (кроме завершающего байта);

— возможность представления строки без создания отдельного типа данных;

— отсутствие ограничения на максимальный размер строки;

— экономное использование памяти;

— простота получения суффикса строки;

— возможность использовать алфавит с произвольным размером символа (например, UTF-8).

Недостатки:

— долгое выполнение операций получения длины и конкатенации строк;

— отсутствие средств контроля над выходом за пределы строки, в случае повреждения завершающего байта возможность повреждения больших областей памяти, что может привести к непредсказуемым последствиям — потере данных, краху программы и даже всей системы;

— невозможность использовать символ завершающего байта в качестве элемента строки.

В языке Java применяется первый вид представления в виде массива символов и две его разновидности:

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

— представление в виде массива байтов, которые выражают коды символов (применяется только для восьмибитной кодировки, которая заранее известна). Используется крайне редко, только в определенных ситуациях для повышения производительности.





Дата публикования: 2015-10-09; Прочитано: 233 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...