Программа на паскале. Про строку

Программа на паскале. Про строку.
Условие вот какое: строка вводится с клавиатуры. Написать функцию, которая вставляет в этой строке после каждой буквы 'o' восклицательный знак '!'. Нужно использовать while или repeat и insert. Я тут начал писать, но всё не так как надо:
function v(s:string):string;
var i, k:integer;
begin
i:=1; k:=1;
while i< =length(s) do begin
if s='o'then insert( '!', s, i+1) else i:=i-1 end;
v:=s; writeln(v)
end;
var j, d:string;
begin
readln(d);
j:=v(d);
readln end.
Как её решить?

  • function v(s:string):string;
    var i:integer;
    begin
    i:=1; while i< =length(s) do begin if s[ i]='o' then insert('!',s,i+1); inc(i) end; v:=s end; var d:string; begin readln(d); writeln(v(d));readln end.