Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Обработка строковых данных является необходимым элементом программ, работающих с текстами. К ним относятся текстовые редакторы, программы лингвистического анализа текстов. Написание многих программ не обходится без использования строковых данных.
Строка - это последовательность символов. При использовании в выражениях строка обязательно заключается в апострофы. Количество символов в строке (длина строки) может динамически изменяться от 1 до 255. Для определения данных строкового типа используется идентификатор string, за которым, как правило, следует заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Если отсутствует явное указание длины строки, то размер будет равен 255 символам.
Строковые данные могут использоваться в программе также в качестве констант.
Выражения, в которых операндами служат строковые данные, называются строковыми выражениями. Они состоят из строковых констант, переменных, указателей функций и знаков операций.
Над строковыми данными допустимы операция сцепления и операции отношения.
Операция сцепления (+) применяется для объединения нескольких строк в одну результирующую строку.
Операции отношения (=, <>, >, <, <=, >=) проводят сравнение двух строковых операндов и имеют приоритет более низкий, чем операция сцепления, т.е. вначале всегда выполняются все операции сцепления, если они присутствуют, и лишь потом реализуются операции отношения. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в стандартной таблице обмена информацией.
К отдельным символам строки можно обратиться по номеру (индексу) данного символа в строке. Индекс определяется выражением целочисленного типа, которое записывается в квадратных скобках сразу за идентификатором строковой переменной или константы.
Например, если значение S - 'ФАМИЛИЯ', то значение S[7] будет 'Я', а S[2] –'А'.
Для обработки строковых данных используются приведенные ниже стандартные процедуры и функции.
Функция Length(St) возвращает текущий размер строки St. Результат имеет целочисленный тип.
Функция Copy (St, Poz, N) - выделяет из St подстроку длиной N символов, начиная с позиции Poz. Если Poz > Length (St), то результатом будет пробел. Poz, N - целочисленные выражения
Функция Pos (Str1, Str2) - обнаруживает первое появление в строке Str2 подстроки Str1. Результат имеет целочисленный тип и равен номеру той позиции, где находится первый символ подстроки Str1. Если в Str2 подстроки Str1 не найдено, результат равен 0.
Функция UpCase(Ch) – преобразует строчную букву в прописную. Обрабатываются буквы только латинского алфавита.
Функция Concat (Str1, Str2,…, StrN) – выполняет сцепление строк Str1, Str2,…, StrN в том порядке, в каком они указаны в списке параметров. Сумма всех символов не должна превышать 255.
Процедура Delete (St, Poz, N) - удаление N символов строки St, начиная с позиции Poz.
Процедура Insert (Str1, Str2, Poz) - вставка строки Str1 в строку Str2, начиная с позиции Poz. Если новая строка Str2 окажется чересчур длинной, то все, что имеется после 255-го символа, отбрасывается.
Процедура Val (S, V, Code) – преобразование строкового значения S в переменную V (вещественную или целую), Code- номер позиции в строке, в которой при преобразовании произошла ошибка, если ошибки не было, значение Code будет равно 0.
Процедура Str (Х, S) – преобразует числовое значение Х в строку символов S.
Рассмотрим тексты программ простейших лингвистических обработок, в которых к строковым данным применяются наиболее часто употребляемые функции и процедуры.
Пример 9.1. Сформировать предложение из трех исходных строк, добавить пробелы между ними и восклицательный знак в конце предложения, первую букву строки заменить прописной буквой. Определить номер позиции первого появления в результирующей строке буквы "e" и все последующие позиции, определить общую длину строки.
В программе предусмотреть вывод окончательных и промежуточных результатов.
Дата публикования: 2015-02-18; Прочитано: 271 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!