Функции работы со строками

Function Сoncat(S1[S2,...,Sn]:String):String;

Объединяет несколько строк в одну.

S1,S2,...,Sn - объединяемые строки;

Пример1.

Program Ct1;

Var S,S1,S2:String;

Begin

Writeln(’Введите 1 строку’);

Readln(S1);

Writeln(’Введите 2 строку’);

Readln(S2);

S:=Сoncat(S1,S2);

Writeln(’S= ’,S);

End.

 

Function Сopy(S:String;I,C:Integer):String;

Создает подстроку строки S

S - исходная строка

I - номер первого выделяемого символа строки

С - число выделяемых символов

Пример2.

Program Ct2;

Var S,S1:String;

Begin

Writeln(’Введите строку’);

Readln(S1);

S:=Сopy(S1,3,4);{копирует 4 символа, начиная с 3-го}

Writeln(’S= ’,S);

End.

 

Function Length(S:String):Integer;

Возвращает текущий размер строки

S - строка, у которой определяют размер

Пример3.

Program Ct3;

Var S:String;

Y:Integer;

Begin

Writeln(’Введите строку’);

Readln(S);

Y:= Length(S);

Writeln(’Количество символов в строке = ’,Y);

End.

 

Function Pos (S1,S2:String):Byte;

Поиск последовательности S1 в строке S2 (результат равен номеру первого символа строки S2, с которого начинается искомая последовательность, или 0, если такой последовательности в строке нет)

S1 – искомая последовательность;

S2– строка, в которой ищется последовательность;

Пример4.

Program Ct4;

Var S2,S1:String;

Y:Integer;

Begin

Writeln(’Введите строку’);

Readln(S2);

Writeln(’Введите искомые символы’);

Readln(s1);

y:= Pos(S1,S2);

Writeln(’Искомая последовательность начинается с символа ’,Y);

End.

 

Процедуры работы со строками

Procedure Delete(Var S:String;I,C:Integer);

Удаляет подстроку из строки S

S - исходная строка

I - номер первого удаляемого символа

С - число удаляемых символов

Пример5.

Program Ct5;

Var S:String;

Begin

Writeln(’Введите строку’);

Readln(S);

Delete(S,5,3);{удаляет из строки 3 символа, начиная с 5-го}

Writeln(S= ’,S);

End.

 

Procedure Insert(C:String;Var S:String;I:Integer);

Помещает подстроку C в строку S

S - исходная строка

C - подстрока, помещаемая в строку

I - номер позиции исхoдной строки, начиная с которой, помещается подстрока

Пример6.

Program Ct6;

Var C,S:String;

Begin

Writeln(’Введите исходную строку’);

Readln(S);

Writeln(’Введите подстроку’);

Readln(C);

Insert(C,S,5);{в строку S помещается подстрока С, раздвигая ее, с 5 позиции}

Writeln(’S= ’,S);

End.

 

Procedure Str(X[:M[:N]];Var S:String);

Преобразует число в последовательность символов.

X - выражение вещественного или целого типа

S - строка, в которую записывается символьное представление числа

M,N - формат вывода

Пример7.

Program Ct7;

Var S:String;

Y:Integer;

Begin

Writeln(’Введите число’);

Readln(Y);

Str(Y,S);

Writeln(строка, имеющая вид числа = ’,S);

End.

 

Procedure Val (S:String;Var X; Var C:Integer);

Преобразует символьное представление числа в число.

S – строка c символьным представление числа;

X -переменная вещественного или целого типа для записи числа;

С – номер неправильного символа (0 – если изображение числа правильное)

 

Пример8.

Program Ct8;

Var S:String;

Y:Integer;

Begin

Writeln(’Введите строку из цифр’);

Readln(S);

Val(S,Y,C);

Writeln(’число = ’,Y*10);{можно производить арифметические действия}

End.

Задача: Составить программу, которая подсчитывает количество слов в предложении.

Пример8.

Program Ct8;

Var S:String;

K,Y:Integer;

Begin

Writeln(’Введите строку’);

Readln(S);K:=1;

For Y:=1 to Length(S) do

If Copy(S,Y,1)=’ ’ Then K:=K+1;

Writeln(’В предложении ’,K,’ слов);

End.

Задачи для самостоятельного решения

Дана строка, имеющая вид предложения.

Задача1_1. Вставит в предложение с 3-го символа слово «кит».

Задача2_1. Удалить из предложения 3 символа, начиная с 6-го.

Задача3_1. Скопировать из предложения 3 символа, начиная со 2-го.

Задача1_2. Подсчитать сколько раз встречается буква «м», предлог «не» в предложении.

Задача2_2. Выяснить, есть ли в предложении хотя бы одна пара одинаковых символов.

Задача3_2. Удалить из предложения все пробелы.

Задача1_3. Вставить в предложение пробелы после каждой буквы «а»

Задача2_3. Проверить, есть ли в предложении запятые

Задача3_3.