Добавление пробелов в строку

Задача

Добавить в строку пробелы после знаков препинания, если они там отсутствуют.

Решение

 

Алгоритм решения задачи: 

  1. Извлечь очередной символ из строки.
  2. Если он является знаком препинания, а после него нет пробела, то скопировать часть строки до этого символа включительно, добавить пробел и скопировать оставшуюся часть строки.

Программа на языке Паскаль: 

 

var
    s: string;
    c: char;
    i: byte;
begin
    write('String: ');
    readln(s);
    i := 1;
    repeat
        c := s[i];
        if ((c='.')or(c=',')or(c='!')or(c='?')) and (s[i+1]<>' ') then
            s := copy(s,1,i) + ' ' + copy(s,i+1,length(s)-i);
        i := i + 1;
    until (i >= length(s));
    writeln('String: ',s);
readln
end.

 

Тема

Строки

Уровень

Комбинированные задачи

Комментарии

допустим 15 символов в строке...

аб.в.о.аб.в.а.о

находим первую точку, ставим пробел...длина строки стала 16..

находим вторую ставим пробел..длина строки 17.. и т.д.

но цикл прокручивается только 15 раз..поэтому знаки которые стоят после 15 символа не будут проверяться...

var
  str: String;
  i: Byte;
  begin
  write('str=');
  readln(str);
  for i:=1 to length(str) do
    case str[i] of
    '.',',','!','?',':':
    if str[i+1] <> ' ' then
      insert(' ',str,i+1);
    end;
  write(str);
  end.

Добавить комментарий