Строки и символы. Тексты программ
Материал из Вики проекта 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.
