Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


ADT – формат данных String




ADT String

Данные

Последовательность ANSI символов, оканчивающаяся NULL–символом

Операции

Нахождение длины (Length)

Вход: Строка S

Предусловие: Нет

Процесс: Подсчет числа символов до NULL–символа

Выход: Возвращает количество символов в строке

Постусловие: Нет

Копирование (Copy)

Вход: Строка S. Индекс первого символа, с которого начинается копирование (Index). Количество копируемых символов (Count).

Предусловие: Нет

Процесс: Копирование до Count символов из строки S, начиная с позиции Index, в строку S1. Если Index меньше единицы, то копируются все символы от 1 до Count. Если Index + Count – 1 больше длины строки S, то копируются все символы от Index до конца строки S.

Выход: Возвращается строка S1 или пустая строка, если Index превышает длину исходной строки S или сама S является пустой или Count меньше 1.

Постусловие: Строка S1 с новой длиной и данными. Строка S не изменяется.

Конкатенация (Concat)

Вход: Две строки S1 и S2

Предусловие: Нет

Процесс: Сцепление строк S1 и S2 за счет создания строки S с присвоением ей строки S1, выделения дополнительной памяти для вставки символов из строки S2 и копирования всех символов из строки S2 в конец строки S.

Выход: Возвращается строка S или строка S2, если строка S1 является пустой.

Постусловие: Строка S с новой длиной и данными. Строки S1 и S2 не изменяются

Сравнение (StrComp)

Вход: Две строки S1 и S2

Предусловие: Нет

Процесс: ASCII-упорядочивания к этим строкам

Выход: - 1, если Str1 < Str2; 0, если Str1 = Str2;

1, если Str1 > Str2

Постусловие: Нет

Индексация (Pos)

Вход: Подстрока SubStr и строка Str

Предусловие: Нет

Процесс: Поиск первого вхождения подстроки SubStr в строку Str.

Выход: Возвращается индекс первого символа найденной подстроки или 0, если подстрока SubStr не найдена

Постусловие: Нет

Удаление (Delete)

Вход: Строка S. Индекс первого символа (Index), с которого начинается удаление. Число удаляемых символов (Count).

Предусловие: Нет

Процесс: Удаление до Count символов из строки S, начиная с позиции Index, за счет сдвига всех не удаленных символов с позиции Index + Count на Count позиций вперед. Если Index меньше единицы, то удаляются все символы от 1 до Count. Если Index + Count - 1 больше длины строки S, то удаляются все символы от Index до конца строки S.

Выход: Строка S

Постусловие: Строка S с новой длиной и данными или исходная строка, если Index превышает её длину или сама строка S является пустой или Count меньше 1.

Вставка (Insert)

Вход: Строка Source и S. Индекс первого символа (Index), с которого начинается вставка.

Предусловие: Нет

Процесс: Вставляется строка Source в строку S, начиная с позиции Index, за счет перемещения всех символов строки S с позиции Index на длину строки Source назад и копирования всех символов строки Source вместо перемещенных символов строки S. Если индекс Index меньше 1, то символы вставляются с первой позиции. Если Index больше длины строки S, то символы строки Source вставляются в конец строки S.

Выход: Строка S или строка Source, если строка S является пустой.

Постусловие: Строка S с новой длиной и данными. Строка Source не изменяется.

Замена (Replace)

Вход: Строка Source и S. Индекс первого символа (Index), с которого начинается замена.

Предусловие: Нет

Процесс: Вставляется строка Source в строку S, начиная с позиции Index, за счет замены всех символов строки S с позиции Index до конца строки Source. Если индекс Index меньше единицы, то символы вставляются с первой позиции. Если Index больше длины строки S, то символы строки Source вставляются в конец строки S.

Выход: Строка S или строка Source, если строка S является пустой.

Постусловие: Строка S с новой длиной и данными. Строка Source не изменяется.

Конец ADT String


Поделиться:

Дата добавления: 2015-08-05; просмотров: 120; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.018 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты