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

Стандартные процедуры и функции для обработки строк

Читайте также:
  1. II. Выполнение процедуры
  2. II. Основные задачи и функции
  3. III. Завершение процедуры
  4. III. Завершение процедуры
  5. III. Окончание процедуры
  6. III. Предмет, метод и функции философии.
  7. XVIII. ПРОЦЕДУРЫ И ФУНКЦИИ
  8. XX. СТАНДАРТНЫЕ МОДУЛИ
  9. А) ПЕРЕДАЧА НА РУССКОМ ЯЗЫКЕ ФУНКЦИИ АРТИКЛЯ
  10. А. Средняя квадратическая погрешность функции измеренных величин.
  11. Абстрактные классы и чистые виртуальные функции. Виртуальные деструкторы. Дружественные функции. Дружественные классы.
  12. Автоматизированная система обработки данных правовой статистики

В Паскале определены следующие стандартные подпрограммы обработки строк:

а) Функции Cоncat, Length, Copy, Pos.

б) Процедуры Delete, Insert, Str, Val.

Функция Cоncat выполняет соединение (конкатенацию) списка строк.

Concat(s1, [s2, ..., sn]; string)

Тип результата: строковый (string). Если длина результирующей строки превышает 255 символов, то она обрезается до 255 символов. Функция аналогична операции "+".

Функция Сору возвращает подстроку строки.

Соpy(s, index, count)

Тип результата: строковый (string).

Параметр s представляет собой выражение строкового типа. Параметры index и count являются выражениями целого типа.

Функция Length возвращает динамическую длину строки.

Length(s)

Тип результата: целый (integer).

Параметр s представляет собой выражение строкового типа. Результатом будет длина строки s.

Функция Роs производит поиск подстроки в строке.

Pos(st1, st2)

Тип результата: байт (byte).

Параметры st1 и st2 являются выражениями строкового типа. Данная функция ищет подстроку, заданную параметром st1 в строке st2, и возвращает целое значение, являющееся позицией первого символа подстроки в строке s. Если подстрока не найдена, то функция возвращает значение 0.

Пример 6. Демонстрация работы функции pos.

 

Program dem_pos;

var

s: string;

begin

s := ' 123.5';

{ преобразует пробелы в нули }

while Pos(' ',s) > 0 do s[Pos(' ',s)] := '0';

end.

 

Процедура Insert(scr, res, index) вставляет строку scr внутрь res, начиная с позиции index. Параметр scr представляет собой выражение строкового типа. Параметр res – переменная строкового типа любой длины. Параметр index является выражением целого типа. Если получившаяся в результате строка превышает 255 символов, то она усекается до 255 символов.

Пример 7. Демонстрация работы процедуры insert.

 

Program dem_insert;

var

s: string;

begin

s := 'Honest Lincoln';

Insert('Abe',s,8); { Honest Abe Lincoln }

...

 

Процедура Delete(s, index, count) удаляет из строки s подстроку длиной count, начиная с позиции index. Если значение параметра index превышает длину строки, то символы не удаляются. Если параметр count задает больше символов, чем остается в строке, начиная c позиции index, то удаляется остаток строки.



Пример 8. Демонстрация работы процедуры Delete.

 

Program dem_delete;

Var

S: String;

Begin

S:= 'Television';

Delete(s,1,4); {Vision}

...

 

Процедура Str(Val_n, Var_s) преобразует численное значение Val_n в его строковое представление, которое присваивает переменной Var_s. Val – это арифметическое выражение, а Var_s – имя строковой переменной. После выражения Val_n может следовать выражение целого типа, которое задает количество символов в Var_s.

Пример 9. Демонстрация работы процедуры Str.

 

Program dem_str;

Var b:string;

k:real;

begin

k:=-2.78465;

str(k:5:2,b); {пpеобpазование числа в стpоку b='-2.78'}

...

 

Процедура Val(s, v, code) – преобразует строковое значение s в число и присваивает его значение переменной v. Параметр v является переменной целого или вещественного типа. Параметр code – это переменная целого типа, которая хранит код завершения. Если преобразование прошло благополучно, то значение code=0, иначе code содержит номер первого ошибочного символа в строке s.

Пример 10. Демонстрация работы процедуры val.

 

Program dem_val;

Var b:string;

k:real;

i:integer;

begin

b:='-12.456';

val(b,k,i);

if i<>0 then write('Hедопустимый символ в стpоке')

else begin {ноpмальное пpеобpазование}

k:=k*2;

write(k)

end;

end.

 

Пример 11. Удалить пробелы в начале текста и лишние пробелы между словами. Сформировать массив из слов текста.

 

Program prim_lab;

Const Doubl=' '; {2 пробела}

VAR

S:string;

i,k:byte;

Massiv:array[1..100] of string;

Begin

Write('ввод строки текста'); readln(s);

{Удалим пробелы слева} While s[1]=’’ do delete(s,1,1);

s:=s+' '; {обеспечим пробел в конце текста}

repeat

i:=pos(doubl,s); {i – позиция двух пробелов в тексте}

if i>0 then delete(s,i,1) {удаление первого пробела из пары}

‡агрузка...

until i=0;

{Переносим выделенные слова в массив, после чего они удаляются из исходного текста}

k:=0; {счетчик слов в формируемом массиве}

repeat

i:=pos(‘ ‘,s);

if i>0 then

begin

inc(k);

{запись в massiv найденного слова}

massiv[k]:=copy(s,1,i-1);

delete(s,1,i) {удаление первого слова c пробелом}

end

until s=’’; {повторять, пока строка не пуста}

{вывод массива слов}

for i:=1 to k do writeln(massiv[i]);

end.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |


Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.)