Помогите исправить аналог функции Copy на паскале(турбо)
Примечание реализация без дополнительных строк Вот мой код:
function mycopy(s: string; start: byte; len: byte): string;
var
i: byte;
begin
s:='';
i:=1;
while (start<=length(s)) do begin
s:=s+s[start];
inc(start);
inc(i);
end;
mycopy:=s;
end;
в отмеченной области должен выводится текст, но как видим ничего выводится.
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Ошибок сразу несколько:
- Вы сразу заменяете входную строку
s: string;
пустой строкойs:='';
- Вы берёте символ для копирования из самой же результирующей строки
s:=s+s[start];
- Переменная
i
инкрементируется, но вообще никак не используется
Исправить ошибку можно если сделать для результата переменную с другим именем, не таким же, как аргумент функции. Наверное, вы можете формировать результат в переменной mycopy
, в которой он в итоге и должен оказаться.