КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Строковые функции и процедуры
Строковые функции и процедуры введены в систему программирования Turbo Pascal для облегчения манипуляции со строками. Имеется восемь строковых функций и процедур.
1. Функция CONCAT (склеивание) Синтаксис: concat (S1, S2,..., Sn: string): string. Возвращает строку, полученную конкатенацией строк S1,...,Sn. Если длина результата больше 256, то излишние символы отбрасываются. Эта функция фигурирует в правой части «:=» и в строковых выражениях. П р и м е р: NUMBER:= concat ('12', '34', '50'); NUMBER = '123450'.
2. Функция LENGTH (длина) Синтаксис: length (S: string): integer. Возвращает длину строки S. П р и м е р: N:= length ('345'); N = 3.
3. Функция POS (позиция) Синтаксис: pos (S,T: string): integer. Функция POS в качестве аргументов использует две строки и определяет, содержится ли первая строка во второй. Возвращает номер символа, начиная с которого S входит в T. Если вхождения нет, то возвращает 0. П р и м е р: N:= pos ('E', 'HELLO'); N = 2. N:= pos ('A', 'HELLO'); N = 0.
4. Функция COPY (вырезка фрагмента) Синтаксис: copy (S: string; N1, N: integer): string. Возвращает подстроку, полученную из N символов строки S, начиная с позиции N1. Значение переменной S при этом не меняется.
П р и м е р: FRAGMENT:= copy ('PROGRAMM', 2, 3); FRAGMENT = 'ROG'.
5. Процедура DELETE (стирание фрагмента) Синтаксис: delete (var S: string; POS, LEN: integer). Убирает из строки S LEN символов, начиная с POS, при этом длина строки уменьшается на LEN позиций. П р и м е р: FRAGMENT:= 'PROGRAMM'; delete (FRAGMENT, 2, 3); FRAGMENT = 'PRAMM'.
6. Процедура INSERT (вставка) Синтаксис: insert (S: string; var D: string; POS: integer). Вставляет строку S в строку D перед символом с номером POS, при этом длина строки D увеличивается на LENGTH (S) позиций.
П р и м е р: FRAGMENT:= 'PRAMM'; insert ('ROG', FRAGMENT, 2); FRAGMENT = 'PROGRAMM'.
7. Процедура STR (преобразование в строку) Синтаксис: str (I: integer; var S: string); str (R: real; var S: string). Преобразует I или R из числа в строку и записывает эту строку в S, причем R и I могут записываться форматно, как в процедуре WRITE.
П р и м е р: a) R:= 123.654; str (R:5:2, S); S = '123.65'; б) I:= 5683; str (I, S); s = '5683'.
8. Процедура VAL (преобразование в число) Синтаксис: val (S: string; var I, J: integer); val (S: string; var I: real; var J: integer). Преобразует строковую переменную S в число типа I. Переменная J получает значение 0, если перевод прошел без ошибок. Если же сделана попытка конвертировать в число строку, где есть нецифровые символы, то переменная J принимает значение позиции первого нецифрового символа. При этом работа процедуры прерывается.
П р и м е р: a) S:= '4326'; б) S:= '43p8'; val (S, I, J); val (S, I, J); I = 4326, J = 0; I – не определено, J = 3.
Рассмотрим теперь пример на применение указанных функций и процедур обработки строк.
П р и м е р. Изменение порядка слов в строке.
program REVERSE; var OLD_LINE, NEW_LINE: string [50]; PROBEL: integer; WORD: string [50]; begin NEW_LINE:= ''; readln (OLD_LINE); OLD_LINE:= concat (OLD_LINE,' '); while OLD_LINE <> '' do begin PROBEL:= pos (' ', OLD_LINE); word:= copy (OLD_LINE, 1, PROBEL); NEW_LINE:= concat (WORD, NEW_LINE); Delete (OLD_LINE, 1, PROBEL); end; writeln (NEW_LINE) end.
Пояснение. С клавиатуры вводится строка OLD_LINE, и к ней справа подклеивается пробел. Это делается для того, чтобы строка имела одну и ту же структуру: слово плюс пробел. Затем в цикле, признаком конца которого является пустая константа, выделяется очередное по порядку слово и подклеивается слева в переменную NEW_ LINE. После выборки очередного слова из OLD_LINE оно оттуда выбрасывается, что приводит к постепенному уменьшению самой строки. Здесь переменная PROBEL служит для хранения позиции первого пробела в строке, а WORD – для выбранного из OLD_LINE слова. Например, строка 'Наша Таня громко плачет' преобразуется в строку 'плачет громко Таня Наша'.
Дата добавления: 2014-12-16; Просмотров: 610; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |