Stroka

advertisement
Задачи
строковые типы данных
Строковые процедуры и функции
Function Copy(S: String; Index, Count: Integer): String;
Возвращает подстроку строки.
Procedure Delete(var S: String; Index, Count:Integer);
Удаляет подстроку символов длиной Count из строки S,
начиная с позиции Index.
Procedure Insert(Source: String; var S: String; Index: Integer);
Объединяет подстроку Source в строку S, начиная с
определенной позиции Index.
Function Length(S: String): Integer;
Возвращает число символов, фактически используемое в
строке S.
http://wm-help.net/books-online/book/1492/1492-3.html
Procedure Val(S; Var V; Var Code : Integer);
Преобразовывает строковое значение в его числовое представление.
Где:
S переменная со строковым типом. Должна представлять последовательность
символов, формирующих знаковое целое число.
V переменная типа Real или Integer
Code переменная типа Integer
Например:
Val(ParamStr(1), I, Code);
WriteLn('Число = ', I);
Procedure Str(X [: Width [: Decimals ]]; Var S : String);
Преобразовывает число X в строку S.
Например:
Str(I, S);
WriteLn(S);
Function Chr(X : Byte): Char; Возвращает символ с определенным номером в ASCII
таблице.
Например: For I:=32 To 127 Do Write(Chr(I));
Function Ord(X) : Longint;
Возвращает порядковое значение выражения перечисляемого типа.
Например: WriteLn('ASCII код для символа "c" равен ', Ord('c'));
Задача 1
В данной строке S вставить символ c1 после каждого вхождения
символа c2.
Формат входных данных
На первой стоке входного файла записан символ c1, на второй строке символ c2. На третьей строке дана сама строка S.
Строка S состоит из букв латинского алфавита, непустая и её длина не
превышает 100 символов.
c1 и c2 - буквы латинского алфавита;
символы c1 и c2 могут совпадать.
Формат выходных данных
Выведите единственную строку - ответ на поставленную задачу.
Примеры:
Вход
a
b
abc
Выход
abac
Вход
b
b
abc
Выход
abbc
var
f, f1:text;
c1,c2,s,s1:string;
n:shortint;
{параметр цикла – порядковый номер очередного
символа строки S}
begin
assign(f,'input.txt'); reset(f); {открываем f - для чтения}
assign(f1,'output.txt'); rewrite(f1); {открываем f1 - для записи}
readln(f,c1); readln(f,c2); readln(f,s); {считываем данные из f}
s1:='';
{‘обнуляем’ s1}
for n:=1 to length(s) do
{вставляем c1 после c2}
if copy(s,n,1)=c2 then s1:=s1+copy(s,n,1)+c1 else
s1:=s1+copy(s,n,1);
writeln(f1,s1);
{запись ответа в файл}
close(f); close(f1);
{закрываем файлы f, f1}
end.
Задача 15
Дана строка . Удалите из неё последовательность символов,
расположенных между двумя запятыми.
Формат входных данных
Во входном файле дана строка . Строка состоит из букв латинского
алфавита, пробелов и запятых;
в ней есть ровно две запятые, её длина не превышает 255 символов;
До первой запятой присутствует хотя бы один символ.
Формат выходных данных
Выведите единственную строку - ответ на поставленную задачу.
Пример:
Вход
abc, ea , t
Выход
abc,, t
var f,f1:text;
s,s1:string;
n:integer;
begin
assign(f,'input.txt'); reset(f);
assign(f1,'output.txt'); rewrite(f1);
readln(f,s);
s1:=''; n:=0
while copy(s,n,1)<>',' do begin
n:=n+1;
s1:=s1+copy(s,n,1)
end;
n:=n+1;
while copy(s,n,1)<>',' do n:=n+1;
s1:=s1+copy(s,n,length(s)-n+1);
writeln(f1,s1);
close(f); close(f1);
end.
{до запятой}
{ между запятыми}
{после второй запятой}
Задача 20
Дана строка . Подсчитайте количество цифр, которые в ней
содержатся.
Формат входных данных
Во входном файле дана строка . Строка состоит из букв
латинского алфавита, цифр и пробелов;
её длина не превышает 255 символов.
Формат выходных данных
Выведите единственное число - ответ на задачу.
Примеры:
Вход
12345rabbitgoneforawalk
Выход
5
var f,f1:text;
s:string;
k,n:integer;
begin
assign(f,'input.txt'); reset(f);
assign(f1,'output.txt'); rewrite(f1);
readln(f,s);
k:=0;
for n:=1 to length(s) do
if (copy(s,n,1)>='0') AND (copy(s,n,1)<='9') then K:=K+1;
writeln(F1,K);
close(f);
close(f1);
end.
Download