Искусственный интеллект. Строки, контекст и волны на Паскале. Сергей Соболенко

Читать онлайн книгу.

Искусственный интеллект. Строки, контекст и волны на Паскале - Сергей Соболенко


Скачать книгу
строки.

      StrLCat (S1, S2: Pchar; L: Word): Pchar; – функция копирует строку S2 в конец строки S1 с учетом ограничения на количество символов L.

      Пример работы с массивом символов S, как с длинными строками:

      Илл. 4. Обработка массива S с помощью функций StrCopy и StrLen.

      В данном случае, мы присваиваем массиву значение функцией StrCopy, а затем измеряем его длину с помощью StrLen и выводим на экран.

      Илл. 5. Результат работы программы Longstring.

      Из недостатков работы с длинными строками выделяются:

      – относительно долгие операции конкатенации (объединения двух строк) и получения числового значения их длины;

      – отсутствие контроля за концом строки, (что может вызывать потери данных и критические ошибки);

      – невозможность использовать символ завершающего байта (#0) в качестве элемента строки;

      – громоздкость синтаксиса.

      По этим причинам и ввиду особой специфики работы, – большее внимание мы уделим операциям с обычными строками.

      Функция поиска

      Одной из базовых функций работы с переменными строкового типа является функция поиска подстроки в строке POS (S,S2), указывающая на числовую позицию первого символа подстроки.

      Например, в случае

      – должна быть переменной целочисленного типа (Integer, Word или Longint) и в данном случае получит значение 6 – позицию подстроки «мыла» в строке.

      Функция Pos достаточно хороша во многих случаях, однако особенностью строчных данных может быть и такой случай, когда подстрока встречается в строке несколько раз. В таком случае функция Pos вернет первое попадание в подстроку.

      Например, следующее выражение

      вернет значение 2, хотя символ «а» встречается здесь несколько раз и верными могли быть также значения 4, 9 и 12.

      Копирование

      Если нам требуется получить фрагмент текста, являющегося частью строки, можно использовать функцию Copy (S,N1,N2); Здесь N1 определяет, с какого символа будет производиться копирование, а N2 – число копируемых символов.

      Например, действие

      присвоит переменной S значение «мыла». Если мы изменим числовые значения, например, на «11, 4» – в переменной S окажется слово «раму»; при «1, 4» – это будет «Мама»; а при «6, 2» в переменной окажется слово «мы».

      Также, одним из ключевых элементов работы с фрагментами текста является функция Length (S), позволяющая определять длину строки, чтобы не выходить за ее рамки.

      Например,

      присвоит переменной n значение 14 – число символов, содержащихся в строке.25

      Рассмотрим и возможности построения более сложных конструкций с символами.

      Предположим, переменной S присвоено значение «Мама мыла раму»; но нам известно только, что в ней находится три слова (длина которых неизвестна) и необходимо получить первое слово из этой строки, отправив его в переменную S2.


Скачать книгу

<p>25</p>

Аналогом функции Length является и прямое обращение к нулевому индексу строки, например L:=S [0]; – в данном случае числовой переменной L будет присвоено число символов в строке.