ЛР5. Строки

Задание

  1. Даны строки S1 и S2. Разработать программу сравнения двух строк по маске. Маской является символ *, который может встретиться в строке S2 один раз в произвольном месте. Символ * означает, что в указанной позиции может быть произвольное количество (от 0) любых символов.

    Например, строки S1=1234567 и S2=123*7 равны по маске, а строки S1=ABCD и S2=*BС - неравны.

  2. Разработать процедуру для "шахматной" вставки одной строки в другую строку. Для решения задачи запрещается обращаться к строкам как к массивам символов, разрешается использовать только штатные функции обработки строк (https://www.freepascal.org/docs-html/rtl/system/stringfunctions.html). Найти разницу при использовании в процедуре строк ShortString и AnsiString.
    procedure ChessInsertProcs(const firstStr:string; var secondStr:string);
    firstStr: вставляемая строка
    secondStr: целевая строка
    
    Пример:
    ПрограммаРезультат работы
    var s1:String='12345';
        s2:String;
    begin
     s2:='testing';
     writeln(s1);
     writeln(s2);
     ChessInsertProcs(s1,s2);
     writeln(s2);
    end.
    
    12345
    testing
    t1e2s3t4i5ng
    

  3. Разработать процедуру для "шахматной" вставки одной строки в другую строку. Для решения задачи запрещается использовать любые функции обработки строк, кроме Length и SetLength. Следует обращаться к строкам как к массивам символов. Найти разницу при использовании в процедуре строк ShortString и AnsiString.
    procedure ChessInsertChars(const firstStr:string; var secondStr:string);
    firstStr: вставляемая строка
    secondStr: целевая строка
    
    Пример:
    ПрограммаРезультат работы
    var s1:String='12345';
        s2:String;
    begin
     s2:='testing';
     writeln(s1);
     writeln(s2);
     ChessInsertChars(s1,s2);
     writeln(s2);
    end.
    
    12345
    testing
    t1e2s3t4i5ng