Для обработки строковых данных можно использовать специальные процедуры и функции.
Процедура Delete(St, poz, n) – удаление n символов строки St, начиная с позиции Poz. Пример Значение St Выражение Результат ‘абвгде’ Delete(St, 4, 2); ‘абве’ ‘река Волга’ Delete(St, 1, 5); ‘Волга’ Процедура Insert (S1, S2, Poz) – вставка строки S1 в строку S2, начиная с позиции Poz. Пример Значение S1 Значение S2 Оператор Результат ‘ ЕС ’ ‘ЭВМ1841’ Insert (S1, S2, 4); ‘ЭВМ ЕС 1841’ ‘ N’ ‘ Рис. 2’ Insert (S1, S2, 6); ‘ Рис. N2’ Процедура Str(N,St) – преобразование числового значения N в строковый и помещение результата в строку St. Пример Значение N Выражение Результат 1500 Str (N:6,St); ‘ 1500’ Процедура Val(St, N,Code) – преобразует значение St в величину целочисленного или вещественного типа и помещает результат в N. Code – целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Code равно 0, если же обнаружена ошибка, то Code будет содержать номер позиции первого ошибочного символа, а значение N не определено. Пример Значение St Выражение Результат ‘1500’ Val(St, N,Code); Code=0 ’14.2A+02 Val(St, N,Code); Code=5 Функция Copy(S, Poz, N) – выделяет из строки S подстроку длиной N символов, начиная с позиции Poz. Пример Значение S Выражение Результат ‘Мама мыла раму’ Copy(S, 6, 4); ‘мыла’ Функция Concat(S1,S2,…,Sn) – выполняет сцепление строк S1,S2,…,Sn в одну строку. Пример Выражение Результат Concat(‘Мама ’,’мыла ’,’раму’) ‘Мама мыла раму’ Функция Length(S) – определяет текущую длину строки S. Пример Значение S Выражение Результат ‘1500 символов’ Length(S) 13 Функция Pos(S1,S2) – определяет первое появление в строке S2 подстроки S1. Пример Значение S2 Выражение Результат ‘abcdef’ Pos(‘cd’,S2) 3 ‘abcdef’ Pos(‘k’,S2) 0 Функция UpCase (ch) – преобразует строчную букву в прописную.Обрабатывает буквы только латинского алфавита. Пример Значение Ch Выражение Результат ‘d’ UpCase (ch) ‘D’
Пример. Из данной символьной строки выбрать все цифры и сформировать другую строку из этих цифр, сохранив их последовательность. Program Stroki; Var S1, S2:string; Begin Write(‘Введите строку’); Readln(S1); S2:= ‘ ‘; For i:=1 to length(S1) do If (S1[i]>=’0’) and (S1[i]<=’9’) Then S2:=S2+S1[i]; Writeln(‘Результат’, S2) End.
|