Pos в паскале что это
Search for substring in a string.
Declaration
Source position: systemh.inc line 1166
const substr : shortstring ;
const s : shortstring ;
const s : shortstring ;
const Substr : ShortString ;
const substr : shortstring ;
const c : ShortString ;
const c : ShortString ;
const v : Variant
const v : Variant
const a : AnsiString ;
const v : Variant
const v : Variant
const v : Variant
const v : Variant ;
const v : Variant ;
const s : ShortString
const v : Variant ;
const a : AnsiString
const v : Variant ;
const v : Variant ;
const v1 : Variant ;
const v2 : Variant
Description
Pos returns the index of Substr in S , if S contains Substr . In case Substr isn’t found, 0 is returned. The search is case-sensitive.
Функция Pos
Функция Pos в Паскале ищет подстроку в строке. Синтаксис функции имеет довольно много вариантов для разных типов данных:
Вся эта куча вариантов взята из документации. Так что просьба не критиковать за излишние подробности )))
Функция Pos возвращает индекс подстроки Substr в строке S, если строка S содержит в себе подстроку Substr. Если подстрока Substr не найдена в строке, то функция возвращает 0. Поиск чувствителен к регистру.
Как найти подстроку в строке
Разумеется, сделать это можно без использования специальных функций.
Проще всего найти в строке символ — это можно сделать простым перебором символов в строке.
Найти вхождение подстроки из нескольких символов будет сложнее. Но тоже возможно — существуют специальные алгоритмы.
Однако зачем “изобретать велосипед”, если есть готовые функции. Такие, например, как функция Pos.
С помощью этой функции можно найти символ или подстроку в строке.
Как часто приходится это делать? Зависит от специфики вашей работы.
Если вы работаете, например, с математикой, то почти никогда.
Если же вы работаете с большими объёмами текстовой информации, с файлами, то довольно часто.
В принципе, здесь всё понятно. Особых разъяснений не требуется.
Единственное замечание по варианту поиска подстроки cde. Как видите, в исходной строке есть две подстроки cde. Но функция возвращает число 3, то есть индекс первого элемента первой найденной подстроки.
program posfunc; var S : string; begin //Ищем индекс первого пробела в строке S := ‘The first space in this sentence is at position : ‘; Writeln(S, Pos(‘ ‘, S)); //Pos = 4 //Ищем последнюю букву английского алфавита в строке S := ‘The last letter of the alphabet doesn»t appear in this sentence ‘; //Так как такой буквы в строке нет, то будет выведено сообщение об этом if (Pos(‘Z’, S) = 0) and (Pos(‘z’, S) = 0) then Writeln(S); //Проверяем, что функция Pos действительно чувствительна к регистру S := ‘abcdefgcde’; Writeln(Pos(‘f’, S)); //Pos = 6 Writeln(Pos(‘F’, S)); //Pos = 0 — буква F не найдена Writeln(Pos(‘cde’, S)); //Pos = 3, потому что функция //возвращает индекс первого //найденного вхождения Writeln(Pos(‘cdf’, S)); //Pos = 0 — такой подстроки нет ReadLn; end.
Функции Copy, Pos, процедуры Delete, Insert.
Функция Copy позволяет копировать из строки часть символов. Функция имеет 3 параметра. Copy (st, index, count). St-строка из которой копируют, Index-номер символа, с которого начинается копирование, Count-количество символов, которое будет скопировано.
Процедура Delete удаляет часть символов из строки. Процедура имеет 3 параметра. Delete (st, index, count). St-строка, из которой будут удалены символы, Index-номер символа, с которого начинается удаление, Count-количество символов, подлежащих удалению.
Процедура Insert позволяет вставлять символы в строку. Процедура имеет 3 параметра. Insert (subst, st, index). Subst-подстрока, которую необходимо вставить, St-строка, в которую вставляется подстрока, Index-номер элемента, с которого начинается вставка.
Функция Pos отыскивает в строке первое вхождение подстроки и возвращает в качестве значения номер элемента, с которого начинается вхождение. Функция имеет 2 параметра. Pos (subst, st). Subst-подстрока, St-строка.
Использование функции COPY, процедуры DELETE.
Строка №6. Записываем в переменную «stroka1» слово «Programmirovanie».
Строка №7. В переменную «stroka2» записываем значение функции Copy. В результате работы этой функции из переменной «stroka1» (слова «Programmirovanie») будет скопировано 10 символов, начиная с 3-го символа.
Строка №9. Процедура Delete удалит из слова «Programmirovanie» 10 символов, начиная с 3-го.

Использование функции POS, процедуры INSERT.
Строка №9. Процедура Insert позволяет вставить в строку другую строку. В нашем случае в слово «Programmirovanie» вставляется слово «PASCAL», начиная с 8-го символа.
Строка №11. В переменную «nomer» записывается значение функции Pos. Переменная «stroka1» содержит слово «ProgramPASCALmirovanie». Буква «S» является 10-й по счету. Соответственно в переменную «nomer» будет записано число 10.
Pascal. Строки символов типа String. Функции работы со строками символов
Строки символов типа String. Функции работы со строками символов. Функции Concat , Copy , Delete , Insert , Length , Pos , Val , Str
Содержание
- 1. Функция Concat . Конкатенация (слияние) строк
- 2. Функция Copy . Получить копию подстроки из указанной строки
- 3. Процедура Delete . Удаление подстроки из строки
- 4. Процедура Insert . Добавить подстроку к строке
- 5. Функция Length . Получить текущую длину строки
- 6. Функция Pos . Поиск подстроки в строке
- 7. Процедура Val . Конвертировать строку в число
- 8. Процедура Str . Конвертировать число в строку
Поиск на других ресурсах:
1. Функция Concat . Конкатенация (слияние) строк
Для конкатенации (добавления, слияния) строк используется функция Concat . Общая форма использования функции следующая
- S1 , S2 , SN – строки, которые нужно объединить;
- ResStr – результирующая строка.
Для вызова функции нужно указывать как минимум одну строку-параметр. Результат выполнения функции – результирующая строка типа string .
Пример.
Результат выполнения программы
2. Функция Copy . Получить копию подстроки из указанной строки
Для выделения некоторого фрагмента из строки используется функция Copy , имеющая следующее использование
- S – строковая величина типа String , из которой выделяется фрагмент;
- Start – величина типа Integer , определяющая позицию начала выделяемого фрагмента;
- Len – величина типа Integer , определяющая количество символов фрагмента, которые нужно выделить.
- ResStr – результатом выполнения этой процедуры есть величина типа String .
Пример.
Результат выполнения программы
3. Процедура Delete . Удаление подстроки из строки
С помощью процедуры Delete можно удалить некоторый фрагмент из строки. Общий вид процедуры:
- S – строковая величина, из которой удаляется фрагмент;
- Start – порядковый номер первого символа удаляемого фрагмента;
- Len – количество символов фрагмента, которые нужно удалить.
Пример.
Результат выполнения программы
4. Процедура Insert . Добавить подстроку к строке
Для вставки в заданную строку другой подстроки используется процедура Insert . В общем случае использование этой процедуры следующее
- S – строковая величина – вставляемый фрагмент;
- S_new – строковая величина, в которую вставляется фрагмент S и где получается результат вставки;
- Start – порядковый номер символа в строке S_new , перед которым вставляется фрагмент S . Значение Start нумеруется с 1.
Пример.
Результат выполнения программы
5. Функция Length . Получить текущую длину строки
Для определения длины строки используется стандартная функция Length . В наиболее общем случае использование функции может быть следующим
- S – строка типа String ;
- Len – количество символов в строке S (длина строки).
Пример.
Результат выполнения программы
6. Функция Pos . Поиск подстроки в строке
Для определения местоположения искомого фрагмента строковой величины можно воспользоваться функцией
- S_find – искомая подстрока;
- S – строка;
- Position – позиция, с которой начинается подстрока S_find в строке S . Значение Position есть типа Byte и нумеруется с 1. Если искомой подстроки в строке не существует, то Position = 0 .
Пример.
Результат выполнения программы
7. Процедура Val . Конвертировать строку в число
Процедура Val позволяет преобразовать строку в число. При этом считается, что строка является представлением числа в символьной форме (например, ‘2.85’, ‘1879’). Эта процедура производит обратную операцию по отношению к процедуре Str .
В наиболее общем случае использование процедуры Val имеет вид:
- S – строковая величина;
- V – величина числового типа, которую нужно преобразовать;
- ErrCode – код результата выполнения процедуры. Если преобразование произошло успешно, то ErrCode=0 . Если из строки S невозможно получить число V , то ErrCode равен номеру позиции в строке S , которую нельзя преобразовать. К примеру, для строки ‘123A56’ вызов процедуры Val вернет ErrCode = 4 .
Пример.
Результат выполнения программы
8. Процедура Str . Конвертировать число в строку
Процедура Str является обратной процедуре Val и позволяет конвертировать величину числового типа ( Integer , Real и т.д.) в строку типа String . Общая форма использования процедуры