Читайте также: |
|
Класс String
Строки являются основным компонентом многих нечисловых алгоритмов. Они используются в таких областях, как сопоставление с образцом, компиляция языков программирования и обработка данных. По существу, полезно иметь строковый тип данных, который инкапсулирует разнообразные операции обработки строк и делает возможным расширения. Строковые переменные С++ являются массивом символов с нулевым символом в конце. Каждая система программирования С++ предоставляет библиотеку функций в <string.h> для сопровождения операций обработки строк. В руках опытного программиста ф-ции являются мощным инструментом реализации эффективности строковых алгоритмов. Однако для многих приложений ф-ции являются чем-то техническим и неудобным для использования.
Некоторые языки программирования, подобные языку BASIC, определяют операторы для обработки строк. Например строковая переменная BASIC заканчивается символом $ и поддерживает присваивание оператором = и сравнение строк оператором <. Строковый тип является частью определения языка BASIC.
Для некоторых языков программирования предоставляют расширения, которые обеспечивают возможность улучшенной обработки строк. Большинство программистов С++ хотели бы получить такое расширение для более гибкого доступа к строкам.
Нижеприведенный класс String реализован в среде Borland C++ 5.02, определяет строковый тип и предоставляет мощный набор строковых методов объекты используют динамическую память для сохранения строк переменной длины и перегруженные операторы для создания строковых выражений. класс String предоставляет пользователю альтернативный строковый тип и тем не менее обеспечивает полное взаимодействие со стандартными строками С++(С++String).
Описание класса
Объекты класса string могут взаимодействовать со строками C++String (конкатенация). Класс имеет два перегруженных оператора присваивания, позволяющие пользователю присваивать строку C++String объекту String. Класс реализует различные способы конкатенации строк, включая оператор += для конкатенации строк в текущую строку. Ряд операторов сравнения используют упорядочение ASCII для сравнения двух строк. Класс String предоставляет несколько мощных и полезных строковых операций, включая поиск символов. Для каждого символа в строке имеется индексный доступ, как в простом массиве. Оператор ввода >> использует пробел для разделения строкового ввода. Метод ReadString считывает символы до ограниченного символа, который заменяется на NULL.
Реализация класса
Данными членами является переменная str, содержащая адрес строки с нулевым завершающим символом, и size, содержащая длину строки +1, где дополнительный байт обычно хранит символ NULL. Значения size, таким образом, являются количеством байт памяти используемым для строки. Если какая-либо операция изменяет размер строки, то память динамически освобождается и выделяется новая, нужного размера.
1). Конструкторы и деструкторы.
Конструктор создает объект типа String принимая в качестве параметра строку C++. Во время процесса инициализации он присваивает размер, выделяет динамическую память и копирует строку С++ в создаваемое динамически данное член str. По умолчанию присваивается NULL-строка. Конструктор копирования следует той же процедуре, но копирует строку из начального объекта string, а не из строки С++. Деструктор удаляет символьный массив, к-рый содержит эту строку.
2). Перегруженные операторы присваивания.
Оператор присваивания позволяет присваивать либо объект string либо строку С++ объекту string. Для того, чтобы присвоить новый string объект текущему объекту, сравнивается длина двух строк. Если они различны, то оператор удаляет динамическую память копирующего объекта и снова выделяет нужную память.
3). Операторы сравнения.
Класс string предоставляет полный набор операторов сравнения строк в соответствии с кодом ASCII. Эти операторы сравнивают два объекта string или объект string c C++string.
4). String – операторы.
Этот класс имеет набор функций, используемых для конкатенации. Конкатенация выполняется перегрузкой операторов + и +=. В первом случае возвращается новая строка. Во втором – происходит добавление к текущей строке.
5). String – функции.
Функция Substr возвращает подстроку из данной строки. Также имеются функции поиска символа в данной строке. Для реализации этих функций используется стандартные функции библиотеки string.h. имеются перегруженные операторы << и >> для обеспечения вывода строки на консоль и ввода символов в строку.
Дата добавления: 2015-10-29; просмотров: 104 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Синтетическое суждение, аналитическое суждение | | | Реализация класса: текст. |