Функции работы со строками
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.