Помощь - Поиск - Пользователи - Календарь
Полная версия: Удвоить вхождение символа в строку
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Sunder
Здравствуйте! Помогите пожалуйста разобраться с задачкей на строки.
Вот, как звучит:

"Дана строка S и символ C. Удвоить каждое вхождение символа C в строку S"

В общем-то, я практически всю задачу написал, но не могу добиться того, чтобы вместо одного искомого символа подставлялось два таких же.

Вот задача:

uses crt;
var s:string;
      c:char;
      q:boolean;
procedure input(var s:string; var c:char);
begin
      writeln('Введите строку:');
      readln(s);
      writeln('Введите символ:');
      readln(c);
end;
procedure check(s:string; c:char; var q:boolean);
var 
      i:integer;
begin
q:=false;
      for i:=1 to length(s) do
        if s[i]=c then q:=true;
        if q=false then
        writeln('Такого символа в строке нет!');
end;
procedure zamena(var s:string; c:char);
var 
       i:integer;
begin
for i:=1 to length(s) do
       if s[i] = c then
       s[i]:=c; {Вот здесь должно быть присваивание двойного сивола - но я не могу это сделать 
 }
       writeln('Финальная строка:');
       writeln(s);
end;
begin
clrscr;
input(s,c);
check(s,c,q);
if q=true then
zamena(s,c);
readln;
end.


Помогите пожалуйста!
volvo
procedure zamena(var s:string; c:char);
var 
  i:integer;
  _result: string;
begin
  _result := '';
  for i:=1 to length(s) do begin
       _result := _result + s[i];
       if s[i] = c then _result := _result + c;
  end;
  s := _result;

  writeln('Финальная строка:');
  writeln(s);
end;
Или работать через цикл While и пользоваться Insert ...
Sunder
Большое пасиба!
Работает... good.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.