Лабораторная 3. Низкоуровневое управление строками

  1. Разработать процедуру для "шахматной" вставки одной строки типа PChar в другую строку типа PChar. Запрещается внутри процедуры использовать функции обработки строк, все манипуляции со строками проводить как с наборами (массивами) символов.
    procedure ChessInsert(firstStr,secondStr:PChar; maxLen:integer=0);
    firstStr: вставляемая строка
    secondStr: целевая строка
    maxLen: максимальная длина целевой строки 
    Если maxLen опущен или равен 0, то maxLen=length(secondStr)
    Считать, что для целевой строки уже выделено достаточно оперативной памяти (см. пример 2)
    
    Примеры:
    ПрограммаРезультат работы
    var s1:pchar='12345';
        s2:pchar='testing';
    begin
     writeln(s1);
     writeln(s2);
     ChessInsert(s1,s2);
     writeln(s2);
    end.
    
    12345
    testing
    t1e2s3t
    

    ПрограммаРезультат работы
    uses strings;
    var s1:pchar='12345';
        s2:pchar;
        data:array[0..100] of char;
    begin
     s2:=strcopy(@data,'testing');
     writeln(s1);
     writeln(s2);
     ChessInsert(s1,s2,100);
     writeln(s2);
    end.
    
    12345
    testing
    t1e2s3t4i5ng
    

  2. Разработать аналогичную процедуру для типа ShortString
  3. Разработать аналогичную процедуру для типа AnsiString