Top.Mail.Ru

Turbo Pascal. Строки

В Турбо Паскале тип строка –string– последовательность символов длиной до 255 символов. Строку можно рассматривать как массив символов.

Формат описания строки:

<имя>:string[длина строки];

Длина строки указывается в квадратных скобках. Максимальное значение равно 255. Если длина строки не указана, то по умолчанию она принимается равной 255.

Пример

var

s1:string[20];
s2:string[100];
s3:string;

Для работы со строками в Турбо Паскале используются следующие процедуры и функции:

Процедуры

  • Delete(var s:string; n, m:integer);

Удаляетmсимволов из строкиs, начиная с позицииn.

Пример

s:='Университетский';

n:=12;

m:=4;

delete(s,n,m);

writeln(s);

Результаты работы программы:

Университет


  • Insert(subs:string; var s:string; n:integer);

 Вставляет подстрокуsubsв строкуs, начиная с позицииn.

Пример

s:='Университет';

sub:='ский';

n:=Length(s);

Insert(sub,s,n+1);

writeln(s);

Результаты работы программы:

Университетский


  • Str(x:integer; var s:string);

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

Пример

var

s: string;

n: byte;

begin

n:=123;

str(n,s);

writeln(s);

readln

end.

Результаты работы программы:

123


  • Val(s:string; var x, code:integer);

Преобразует строковое значениеsв его числовое представлениеx. Параметр code содержит признак ошибки преобразования (еслиcode=0, ошибки нет).

Пример

var

s: string;

n: integer;

code:integer;

begin

s:='12345';


val(s,n,code);

writeln(n);

readln

end.

Результаты работы программы:

12345

Функции

  • Chr(n:byte):char;

Возвращает символ с заданным порядковым номеромx.

Пример

var

ch: char;

n: byte;

begin

n:=65; //это порядковый номер (код) символа ‘A’

ch:= Chr(n);

writeln(ch);

readln

end.

Результаты работы программы:

A


  • Concat(s1[,s2,...,sn]):string;

Выполняет сцепку (конкатенацию) последовательности строк.

Пример

var

s: string;

s1: string;

s2:string;

s3:string;

begin

s1:= 'Университетский';

s2:=' центр';

s3:=' Турбо';

s:= concat(s1,s2,s3);

writeln(s);

readln

end.

Результаты работы программы:

Университетский центр Турбо


  • Copy(s:string; n,m:integer):string;

Возвращает подстроку из строкиs, начиная с позицииnи длинойmсимволов.

Пример

var

s: string;

sub:string;

n: integer;

m:integer;

begin

s:= 'Университетский центр Турбо';

n:=17;

m:=5;

sub:= Copy(s, n, m);

writeln(sub);

readln

end.

Результаты работы программы:

центр


  • Length(s:string):byte;

Возвращает количество символов в строкеs.

Пример

var

s: string;

n: integer;

begin

s:= 'Университетский центр Турбо';

n:=Length(s);

writeln(n);

readln

end.

Результаты работы программы:

27


  • Ord(x:Char):LongInt

Возвращает порядковый номер символаxв таблице кодов символов.

Пример

var

ch:char;

n: integer;

begin

n:= ord('A');

writeln(n);

readln

end.

Результаты работы программы:

‘A’


  • Pos(SubS,s:string):byte;

Возвращает номер позиции, начиная с которой в строке s располагается подстрокаSubS(если значение функции равно нулю, тоSне содержитSubS).

Пример

var

s: string;

sub:string;

n: integer;

begin

s:= 'Университетский центр Турбо';

sub:='Турбо';

n:= pos(sub, s);

writeln(n);

readln

end.

Результаты работы программы:

23


ЗАДАЧА 1. Написать программу, определяющую количество слов в заданном тексте. Слова разделяются произвольным количеством пробелов.

Program a19;

Uses CRT;
var
text:string; {заданный текст}
i:integer; {параметр цикла}
n:integer; {количество слов}
f:boolean;
s:char; {текущий символ}
Begin
ClrScr;
Writeln(‘Введите текст: ’);
Readln(text);
n:=0; f:=true;
for i:=1 to length(text) do
begin
s:=text[i];
if(s’ ‘) and f then n:=n+1;
f:=(s=’ ‘)
end;
writeln;
writeln(‘Количество слов в тексте равно:’,n:3);
end.

Результаты работы программы:

Введите текст:

Университетский центр компьютерного обучения «Турбо»
Количество слов в тексте равно: 5

ЗАДАЧА 2. Написать программу, которая определяет, сколько раз в тексте встречается заданная буква.

Program a20;

Uses Crt;
Var
text,stext:string;
i:integer;
n:integer;
s:char;
Begin
writeln('Введите текст:');
readln(text);
write('Введите букву: ');
readln(s);
n:=0;
for i:=1 to length(text) do
begin
stext:=copy(text,i,1);
if stext=s then n:=n+1;
end;
write('Буква ', s, ' встречается ', n, ' раз');
End.

Результаты работы программы:

Введите текст:

Университетский центр компьютерного обучения «Турбо»
Введите букву: е