Доступ к отдельным элементам строки производится аналогично доступу к элементам однородного массива
Var s: string;
begin s[1]:=’A’;{или s[1]:=#65 или s[1]:=chr (65)
Кроме стандартной функции length Turbo Pascal представляет еще ряд функций и процедур для обработки строк.
Функции работы со строками:
s:=Copy (строка, p, n), где
Строка - выражение строкового типа, содержащее строку, фрагмент которой надо получить;
р - номер первого символа в строке, с которого начинается выделяемая подстрока;
n – число копируемых символов (т.е. длина выделяемой подстроки);
s – переменная строкового типа.
p-str1, p-str2: string[20];
begin
str:=’программирование’;
p-str1:=Copy (str, 8, 3); {мир}
p-str2:=Copy (str, 17, 2); {результат строки нулевой длины}
р:= (Подстрока, строка); где
Подстрока– строковая константа или переменная, которую нужно найти в строковой константе или переменной строка. Если заданный фрагмент в строке отсутствует, то функция возвращает Æ.
Пример Var str: string[80];
fr: string[20];
p: integer;
begin
str:=’программирование’;fr:=’Мир’;
p:=Pos (fr, str);
if p<>0 then writeln (‘Фрагмент’,fr,’содержится в строке’,str);
end.
Пример Var str: string;
i: byte;
begin
write (‘ввод строки строчных букв’);
readln (str)
for i:=1 to length (str) do
str[i]:=Up Case (str[i]);
writeln (str);
end.
Процедуры работы со строками.
Delete (строка, p, n) – где строка – переменная строкового типа;
р – номер символа, с которого начинается удаляемая подстрока;
n – длина удаляемой подстроки.
Пример Insert (str1, str, n) – в строку str перед n-й позицией вставляется строка str1.
Замечание Во избежании ошибок при применении процедур Insert и Delete указанные в списке параметров позиции должны обязательно присутствовать в образованных строках.
3.Процедура Val (str, x, code) – преобразует строковое представление числа str в величину целого или вещественного типа х. Code – целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Code, если ошибка обнаружена (например, символьное значение переводится в число), переменная Code будет содержать номер позиции первого ошибочного символа, а значение х неопределенно.
4. str (x, s) – преобразует выражение вещественного или целого типа в его строковое представление.
Пример Дан текст. Слова в тексте разделяются пробелами:
1) Найти в тексте все слова, в которых количество букв ‘a’ и ‘b‘ – максимально;
2) В словах оканчивающихся на ing, окончание ing заменить на ed. Var text: string;
mas_sl: array[1..30] of string[20]; {одномерный массив строк}
kol: array[1..30] of integer; {доля букв а и b в каждом слове}
k, max, i, j: integer;
begin
writeln (‘Введите текст’); readln (text); k:=1;
mas_sl[k]:=’’;
for i:=1 to length (text) do begin
if text[i]<>’ ‘ then mas_sl[k]:= mas_sk[k]+text[i]
else k:=k+1;
end;
for i:=1 to k do
begin kol[i]=0;
for j:=1 to length (mas_sl[i]) do
if mas_sl[i][j]=’b’
kol[i]=kol[i]+1;
end;
max=kol[1];
for i:=2 to k do if kol[i]>max max=kol[i];
writeln (‘слова с максимальным количеством букв ‘a’ и ‘b’);
for i:=1 to k do
if kol[i]=max writeln (mas_sl[i]);
for i:=1 to k do
begin p:=pos(‘ing’, mas_sl[i]);
if p>0 then begin Delete (mas_sl[i], p, 3);
Insert (‘ed’, mas_sl[i], length (mas_sl[i]+1);
end;
writeln (‘измененные слова’)
for i:=1 to k do
writeln (mas_sl[i]);
end;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.