Строки и символы. Тексты программ
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Определение кода по символу и символа по коду
var
c: char;
code: integer;
begin
c := 'z';
code := Ord(c);
writeln('Код символа ',c,' равен ',code);
code := 35;
c := Chr(code);
writeln('Символ с кодом ',code,' - это ',c);
end.
Преобразование цифрового символа в соответствующее однозначное число и обратно
var
c: char;
digit: integer;
begin
c := '5';
digit := Ord(c) - Ord('0');
writeln('Цифра, соответствующая символу ''',c,''' - это ',digit);
digit := 7;
c := Chr(digit + Ord('0'));
writeln('Символ цифры ',digit,' - это ''',c,'''');
end.
Преобразование числа в строку и обратно
var
s: string;
num: integer;
begin
s := '356';
num := StrToInt(s);
writeln('Число, соответствующее строке ''',s,''' - это ',num);
num := 563;
s := IntToStr(num);
writeln('Строка, соответствующая числу ',num,' - это ''',s,'''');
end.
Формирование строки из n одинаковых символов
var
c: char;
s: string;
n: integer;
begin
n := 10;
c := 'z';
s := '';
for var i:=1 to n do
s += c;
writeln(s);
end.
Замена всех маленьких английских букв в строке соответствующими большими
var s: string := 'Hello, World!';
begin
var dist := Ord('a')-Ord('A');
for var i:=1 to s.Length do
if s[i] in ['a'..'z'] then
s[i] := Chr(Ord(s[i])-dist);
writeln(s);
end.
Сумма записанных в строке чисел
var
s: string := '1 2 4 8 16 32 64 128 256 512';
sum: integer;
num,p: integer;
numstr: string;
begin
sum := 0;
while s.Length>0 do
begin
while s[1]=' ' do // Удаление лидирующих пробелов
Delete(s,1,1);
p := Pos(' ',s); // Поиск следующего пробела
if p=0 then // Если он не найден, то до конца строки находится последнее число
p := s.Length;
numstr := Copy(s,1,p);
Delete(s,1,p);
num := StrToInt(numstr);
sum += num;
end;
writeln('Сумма чисел строки равна ',sum);
end.
Количество вхождений подстроки в строку
var
s: string := 'this bra is abracadabra';
subs := 'bra';
count: integer;
begin
count := 0;
var scopy := s;
while s.Length>0 do
begin
var p := Pos(subs,s); // Поиск подстроки в строке
if p=0 then
break;
count += 1;
Delete(s,1,p+subs.Length);
end;
writelnFormat('Количество вхождений ''{0}'' в ''{1}'' равно {2}',subs,scopy,count);
end.