Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие Модуль1.doc
Скачиваний:
129
Добавлен:
28.05.2015
Размер:
1.7 Mб
Скачать

14.4. Функции обработки строковых переменных

length(s:string):byte - подсчитывается фактическая длина строки, включая пробелы и знаки препинания.

Например:

s:=’Москва’;

wrtiteln(length(s));

Результат на экране:

Число 6, количество символов в сломе Москва.

copy(s:string,i,n):string -

копируется фрагмент строки s.

Где s - переменная, из которой копируется фрагмент;

i - позиция, с которой копируется;

n - количество копируемых символов.

Если i и n - вне пределов строки, сообщения об ошибке не будет.

Если i>length(s ) результат - строка нулевой длины.

Если n >length(s ) результат - фрагмент от i до конца строки.

Например:

s:='электрификация';

b:=copy(s,8,3)+copy(s,12,3);

writeln(s);

Результат на экране:

фикция

pos(t:string,s:string):byte -

осуществляет поиск подстроки t в строке s.

Результатом этой функции является позиция вхождения t в s. Если подстрока не найден - результат 0.

Например:

t:='ритм'; s:='алгоритм';

k:=pos(t,s);

wrieln(‘k=’,k);

Результат на экране:

k=5

14.5. Процедуры обработки строковых переменных

insert(t,s,i);

- вставить подстроку t в строку s начиная, начиная с позиции i.

Например:

s:='ритм';

insert(‘алго’,s,1);

wrieln(s);

Результат на экране:

алгоритм

delete(s,i,n) ;

- удалить из строки s с позиции i - n символов.

Например:

s:='алгоритм';

delete(s,1,4);

writeln(s);

Результат на экране:

ритм

i,n - в процедурах insert и delete обязательно должны присутствовать в строке s. Иначе - сообщение об ошибке.

14.6. Примеры обработки строковых переменных

Задача.

В произвольном тексте заменить все сочетания “чя” на “ча”.

Таблица идентификаторов

Наименование переменной

Обозначения в программе

1

Текст

Text

2

Индекс массива

i

Program word_text;

Uses crt;

var

text:string;

i:integer;

begin

clrscr;

writeln(‘Введите текст’);

readln(text);

for i:=1 to length(text)-1 do

if copy(text,i,2)=‘чя’ then

begin

delete (text,i+1,1);

insert (‘a’,text,i+1);

end;

writeln(‘Преобразованный текст’);

writeln(text);

readln;

end.

Задача.

В произвольном тексте (text) в слове word заменить первую букву на заглавную и подсчитать количество замен (текст латинский).

Таблица идентификаторов

Наименование переменной

Обозначения в программе

1

Текст

text

2

Слово

word

3

Индекс массива

i

4

Количество замен

s

Program word_text1;

Uses crt;

var

text,word:string;

s,i:integer;

begin

writeln(‘Введите текст’);

readln(text);

s: =0;

writeln(‘Введите слово’);

readln(word);

for i:=1 to length(text)-lenght(word)+1 do

if copy(text,i,length(word))=word then

begin

s:=s+1;

text[i]:=upcase(text[i]);

end;

writeln (s);

readln;

end.

Задача.

Заменить в произвольном тексте все слова word1 на слово word2.

Таблица идентификаторов

Наименование переменной

Обозначения в программе

1

Текст

text

2

Слова первое

word1

3

Слова второе

word2

4

Индекс

i

Program word_text2;

var

text,word1,word2:string;

i:integer;

begin

writeln(‘Введите исходный текст’);

readln text);

writeln(‘Введите первое слово’);

readln(word1);

writeln(‘Введите второе слово’);

readln(word2);

repeat

i:=pos(word1,text)

if i<>0 then

begin

delete(text,i,length(word1));

insert(word2,text,i);

end;

until i=0;

writeln(‘Преобразованный текст’);

writeln(text);

readln;

end.