Разработать библиотечный модуль, содержащий следующие подпрограммы (процедуры или...

0 голосов
48 просмотров

Разработать библиотечный модуль, содержащий следующие подпрограммы (процедуры или функции) для работы со строками: А.Три функции для удаления концевых пробелов в заданной строке (удалить пробелы в начале строки, в конце строки и с двух концов) Б. Удаление лишних пробелов (между словами оставить по одному пробелу) В. Удаление всех пробелов в строке Написать программу, к которой подключается модуль, демонстрирующую работоспособность всех подпрограмм модуля. PacsalABC.NET


Информатика (59 баллов) | 48 просмотров
0

регекспы использовать можно?

Дан 1 ответ
0 голосов
Правильный ответ

модуль

unit SpaceLib;

interface

uses System;

const

   ch = ' ';

function MyTrimLeft(s: string): string;

function MyTrimRight(s: string): string;

function MyTrim(s: string): string;

function MySingleSpaces(s: string): string;

function MyNoSpaces(s: string): string;

implementation

function MyTrimLeft(s: string): string;

begin

   MyTrimLeft := Regex.Replace(s, '^[' + ch + ']+', '');

end;

function MyTrimRight(s: string): string;

begin

   MyTrimRight := Regex.Replace(s, '[' + ch + ']+$', '');

end;

function MyTrim(s: string): string;

begin

   s := Regex.Replace(s, '^[' + ch + ']+', '');

   MyTrim := Regex.Replace(s, '[' + ch + ']+$', '');

end;

function MySingleSpaces(s: string): string;

begin

   s := MyTrim(s);

   MySingleSpaces := Regex.Replace(s, '[' + ch + ']+', ' ');

end;

function MyNoSpaces(s: string): string;

begin

   MyNoSpaces := s.Replace(ch, '');

end;

end.


Пример

//PascalABC.NET версия 3.4.0.1677 от 17.06.18

//Если программа не запускается, то обновите версию

uses SpaceLib;

begin

   var s := '   123 123  23 4343    434 43 34    ';

   WritelnFormat('"{0}"', MyTrimLeft(s));

   WritelnFormat('"{0}"', MyTrimRight(s));

   WritelnFormat('"{0}"', MyTrim(s));

   WritelnFormat('"{0}"', MySingleSpaces(s));

   WritelnFormat('"{0}"', MyNoSpaces(s));

end.

(55.0k баллов)
0

если помогло то не забудте лучший ответ поставить