Главная страница » Как удалить символ из строки паскаль

Как удалить символ из строки паскаль

  • автор:

Функции 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-го.

funkciya COPY, procedura DELETE

funkciya COPY, procedura DELETE.

Использование функции POS, процедуры INSERT.

Строка №9. Процедура Insert позволяет вставить в строку другую строку. В нашем случае в слово «Programmirovanie» вставляется слово «PASCAL», начиная с 8-го символа.
Строка №11. В переменную «nomer» записывается значение функции Pos. Переменная «stroka1» содержит слово «ProgramPASCALmirovanie». Буква «S» является 10-й по счету. Соответственно в переменную «nomer» будет записано число 10.

Процедура Delete

Процедура Delete в Паскале удаляет часть строки. Синтаксис:

Процедура Delete удаляет символы из строки s, начиная с позиции, указанной в параметре index. Количество удаляемых символов указано в параметре count.

Все символы, которые находятся после удаленных символов, сдвигаются на count позиций влево, а длина строки исправляется.

Если, например, в строке 10 символов, и вы укажете начальную позицию 5, а количество символов 10 (то есть 5 + 10 = 15 — это больше длины строки), то ничего страшного не произойдёт. Просто строка будет обрезана, начиная от позиции, указанной в параметре index.

Также ничего страшного не произойдёт, если в параметре index вы укажете значение, которое превышает размер строки. В этом случае из строки не будут удалены никакие символы.

Лекции 2012 / Тема 8 — Строки в Паскале

Тип STRING (строка) в Турбо Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов ARRAY[O..N] OF CHAR, однако, в отличие от последнего, количество символов в строке-переменной может меняться от 0 до N, где N – максимальное количество символов в строке. Значение N определяется объявлением типа STRING [N] и может быть любой константой порядкового типа, но не больше 255 .

Турбо Паскаль разрешает не указывать N, в этом случае длина строки принимается максимально возможной, а именно N=255 .

Строка в Турбо Паскале трактуется как цепочка символов. К любому символу в строке можно обратиться точно так же, как к элементу одномерного массива ARRAY [0..N] OF CHAR, например:

Самый первый байт в строке имеет индекс 0 и содержит текущую длину строки, первый значащий символ строки занимает второй байт и имеет индекс 1. Над длиной строки можно осуществлять необходимые действия и таким способом изменять длину. Например, удалить из строки все ведомые пробелы можно следующим образом:

while (i <> 0) and (st[i] = ‘ ‘) do begin

Значение ORD(st[0]) , т.е. текущую длину строки, можно получить и с помощью функции LENGTH(st), например:

while (Length(st)<>0) and (st[Length(st)]=’ ‘) do

К строкам можно применять операцию «+» – сцепление, например:

Если длина сцепленной строки превысит максимально допустимую длину N, то «лишние» символы отбрасываются. Следующая программа, например, напечатает символ 1:

Все остальные действия над строками и символами реализуются с помощью описываемых ниже стандартных процедур и функций.

CONCAT(S1 [,S2, . , SN] ) – функция типа STRING; возвращает строку, представляющую собой сцепление строк-параметров SI, S2, …, SN.

COPY(ST, INDEX, COUNT) – функция типа STRING; копирует из строки ST COUNT символов, начиная с символа с номером INDEX.

DELETE (ST, INDEX, COUNT) – процедура; удаляет СОUNT символов из строки ST, начиная с символа с номером INDEX.

INSERT (SUBST, ST, INDEX) – процедура; вставляет подстроку SUBST в строку ST, начиная с символа с номером INDEX.

LENGTH (ST) – функция типа INTEGER; возвращает длину строки ST.

POS (SUBST, ST) – функция типа INTEGER; отыскивает в строке STпервое вхождение подстроки SUBST и возвращает номер позиции, с которой она начинается; если подстрока не найдена, возвращается ноль.

STR(X [; WIDTH [: DECIMALS] ], ST) – процедура; преобразует число X любого вещественного или целого типов в строку символов ST так, как это делает процедура WRITELN перед выводом; параметры WIDTH и DECIMALS, если они присутствуют, задают формат преобразования: WIDTH определяет общую ширину поля, выделенного под соответствующее символьное представление вещественного или целого числа X, a DECIMALS – количество символов в дробной части (этот параметр имеет смысл только в том случае, когда Х- вещественное число).

VAL(ST, X, CODE) – процедура; преобразует строку символов ST во внутреннее представление целой или вещественной переменной X, которое определяется типом этой переменной; параметр CODE содержит ноль, если преобразование прошло успешно, и тогда в X помещается результат преобразований, в противном случае он содержит номер позиции в строке ST, где обнаружен ошибочный символ, и в этом случае содержимое Х не меняется; в строке ST могут быть ведущие пробелы, однако ведомые пробелы недопустимы; например, обращение val (’ 123′,k,i) пройдет успешно: k получит значений 123, в i будет помещен 0, в то время как обращение val (’ 123 ‘ , k, i) будет ошибочным: значение k не изменится, a i будет содержать 4.

UPCASE (СН) – функция типа CHAR; возвращает для символьного выражения СН, которое должно представлять собой строчную латинскую букву, соответствующую заглавную букву; если значением СН является любой другой символ (в том числе строчная буква русского алфавита), функция возвращает его без преобразования.

Операции отношения =, о, >, <, >=, <= выполняются над двумя строками посимвольно, слева направо с учетом внутренней кодировки символов (см. табл.4.1 и прил.2). Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются значением СНR(0) .

Как удалить символ из строки паскаль

Перечислим основные процедуры и функции, которые предназначены для работы с переменными строкового типа.

1. Определение длины строки. Вычисление текущей длины строки производится с помощью функции Length . Ее общий вид следующий: Результатом данной функции является целое число, равное текущему количеству символов в строке. Например, при выполнении следующих конструкций: значение целой переменной K будет равно 12.

  • ‘Паскаль ‘>’Паскаль’ (первая строка будет больше второй, так как в первой строке еще присутствует пробел),
  • ‘Balkon’ (первая строка меньше второй, так как код символа ‘b’ больше кода символа ‘B’: Ord (‘b’)>Ord (‘B’)) ,
  • ‘Паскаль’=’Паскаль’ (строки совпадают посимвольно и равны по длине).

2. Удаление части символов строки. Для удаления из строки фрагмента используется процедура Delete , общий вид которой следующий:

Рис.1. Общий вид процедуры Delete

Например, при выполнении процедуры Delete(‘Язык Паскаль’,5 ,8) из строки будут удалены 8 символов, начиная с пятого, и исходная строка будет иметь вид: ‘Язык’.

3. Вставка символов в строку. Для вставки символов в строку используется процедура Insert . Ее общий вид следующий:

Рис.2. Общий вид процедуры Insert

Например, в результате выполнения процедуры Insert(‘111’, ‘ABC’,2); результирующая строка будет такой:’A111BC’.

4. Поиск подстроки в строке. Для определения позиции подстроки в строке используется функция Pos , общий вид которой следующий:

Рис.3. Общий вид функции Pos

Результат этой функции целое число. Оно определяет номер элемента, с которого начинается первое вхождение подстроки в строку. Если подстрока в строку не входит, то значение функции равно нулю. Например, при выполнении конструкции k1:=Pos(‘BC’,’ABCD’); значение переменной k1 равно 2, так как функция Pos возвращает номер элемента, с которого подстрока первый раз встречается в строке. При выполнении оператора k1:=Pos(‘ABCD’,’ BC’); значение переменной k будет равно нулю.

Приведем пример программы, иллюстрирующей выше описанные конструкции. Пусть в заданном тексте нужно заменить все вхождения подстроки ‘del’ на ‘insert’ .

Решение и комментарии вы можете посмотреть здесь.

5. Склеивание строк. Для «склеивания» строк используется функция Concat , общий вид которой следующий:

Например, после выполнения следующих конструкций: на экран будет выведено сообщение: «Пароход «.

Замечание .
«Склеивание» строк можно производить, используя символ «+», например, C:=A+’о’+B; в результате строка C будет иметь вид: ‘Пароход’.

6. Копирование строк. Для копирования строк или их фрагментов используется функция Copy . Ее общий вид:

Рис.4. Общий вид функции Copy

Например, при выполнении оператора WriteLn(Copy (‘Язык Паскаль’,6,7)) на экран будет выведено сообщение:» Паскаль».

Часто возникает необходимость получить строковое представление числа и наоборот (например, получить строку ’13’ из числа 13). Для работы с числами и строками применяются следующие две процедуры.

7. Перевод числа в строку. Для перевода числа в строку используется процедура Str , общий вид которой следующий:

Рис.5. Общий вид процедуры Str

Например, Str(1.21, St); в результате выполнения процедуры строка будет такой: St=’1.21′.

8. Перевод строкового выражения в число. Для перевода строки в число используется процедура Val . Ее общий вид:

Рис.6. Общий вид процедуры Val

Если данная строка действительно является записью числа (целого или действительного), то значение признака будет равно нулю , иначе значение признака будет равно номеру первого символа, с которым процедура Val «не справилась», то есть преобразование этого символа является невозможным.

Например, при выполнении процедуры Val (‘1234’,N,K); значение переменной N будет равно 1234, а переменная K будет равна нулю, так как строка ‘1234’ является записью целого числа. При выполнении конструкции Val(’12-34′,N,K); значение переменной N не изменится, а переменная K будет равна трем, то есть номеру символа, с которого преобразование невозможно, так как знак «-» в записи чисел может быть только на первом месте.

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

Решение и комментарии вы можете посмотреть здесь.

На следующем шаге мы разберем еще несколько задач, при решении которых используются перечисленные конструкции.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *