|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Стандартные процедуры и функции для обработки строкВ Паскале определены следующие стандартные подпрограммы обработки строк: а) Функции 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 и s t2 являются выражениями строкового типа. Данная функция ищет подстроку, заданную параметром 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.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.) |