8.3. Строковые функции и процедуры
I. Функция Length(Строка) возвращает длину строки.
Значением функции Length(S) является количество символов, из которых состоит строка S. У этой функции один параметр – выражение строкового типа
Например, S1:= 'Самара'; n:= length (S1);
S2:= 'Кировский проспект'; m:= length (S2);
Значение переменных n и m будет равно 6 и 18 соответственно.
II. Функция Concat ( строка1, строка2, . . . , строкаN) возвращает строку, являющуюся объединением строк, указанных при вызове функции. У этой функции может быть несколько параметров – выражения строкового типа по количеству объединяемых строк.
Например, S:= Concat(S1, #46, #32, S2, #46);
Значение переменной S Самара. Кировский проспект.
III. Функция Pos(Подстрока, Строка) позволяет определить положение подстроки в строке, где Подстрока – строковая переменная ( или строковая константа), которую надо найти в строковой переменной Строка.
Например,
p:=pos('Пе', 'Санкт-Петербург');
Значение переменной p будет равно 7. Если в строке р нет искомой подстроки, то значение функции pos будет равно 0.
IV. Функция Copy(Строка, p, n) позволяет выделить фрагмент строки. Здесь Строка – выражение строкового типа, содержащее строку, фрагмент которой надо получить, p - номер первого символа, с которого начинается выделяемая подстрока, n - длина выделяемой подстроки.
Например,
st:= ' Инженер Иванов ';
fam:=сopy(st,9,6);
Значением переменной fam будет строка ' Иванов ' – 9 позиция строки st, с которой выделяется подстрока Иванов из 6 символов из строки st.
V. Функция Chr(Код) возвращает символ с указанным кодом
Например, Chr(192) вернет символ – букву A
Chr(46) вернет символ – « . » (точку)
VI. Процедура delete(Строка, p, n) позволяет удалить часть строки. Здесь Строка – переменная строкового типа, p – номер символа, с которого начинается удаляемая подстрока, n – длина удаляемой подстроки.
Например,
s:= ' Город Санкт-Петербург '
delete(s, 7, 6);
Значением переменной s будет строка ' Город Петербург ' – где из строки s начиная с 7 позиции удалена подстрока Санкт- состоящая из 6 символов.
VII. Процедура insert(Подстрока, Строка, p) позволяет вставить часть подстроки в строку, где Подстрока - строковая переменная, которую надо вставить в строковую переменную Строка начиная с позиции p.
Например,
S:= ' Санкт- ';
Insert(S, ' Петербург ', 1);
Значением переменной S будет строка ' Санкт-Петербург '
Задача5. Удаление начальных пробелов строки, введенной с клавиатуры.
program Example5;
…
uses
SysUtils;
var
st: string[50];
begin
writeln (' Vvedite stroky ');
readln (st);
while (pos(' ', st)=1) and (length(st)>0) do delete(st,1,1);
writeln('stroka bez nachalnyh probelov:', st);
readln // вывод cтроки без начальных пробелов
end.
Необходимость проверки условия length(st)>0 объясняется возможностью того, что введенная строка состоит только из пробелов.
VIII. Процедура Val(Строка, Число, Код) позволяет преобразовать изображение числа в соответствующий ему код-число, где Строка –строковая переменная, содержащая изображение числа, Число – переменная целого или дробного типа, которой должно быть присвоено значение, изображенное Строкой, Код – возвращаемое процедурой целое число (или код ошибки). Возвращается код результата операции, если операция выполнена успешно, в противном случае возвращается 0.
IX. Процедура Str(X [: ВсегоСимволов [: ДробнаяЧасть ] ]; var Строка: string) выполняет преобразование числового выражения X в его строковое представление S (Строка). ВсегоСимволов и ДробнаяЧасть – необязательные выражения целого типа, которые задают общее количество символов дробной части в изображении числа.
Задача6. Вычисления со строковыми переменными
program Example6;
…
uses
SysUtils;
var
S1, S2, S :string[50];
code, X1, X2, Y :integer;
begin
Writeln ('Vvedite 1 stroky');
Readln (S1);
Writeln ('Vvedite 2 stroky');
Readln (S2);
Val(S1, X1,Code); // Преобразование 1-й строки в цифру Х1
Val(S2, X2,Code); // Преобразование 2-й строки в цифру Х2
Y:=X1*X2; // Арифметические действия
Writeln('Y=',Y);
Str(Y:6,S); // Вывод результата в виде строки S
Writeln('Rezalt: ',S);
readln
end.