Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 15.12.2008, 13:36   #1
MaxMelnikov
Пользователь
 
Регистрация: 19.11.2008
Сообщений: 14
По умолчанию Помогите с выводом строки

Задача:
Вводится строка из слов. Между словами может быть несколько пробелов. Получить новую строку, в которой между словами имеется строго заданное количество пробелов. Требуемое количество пробелов вводится. Обеспечить проверку корректности вводимых данных (количества пробелов).
Моё решение:
Код:
Uses Crt;
Var s : string;
    sr : string; i,j,k : integer;
    n : longint;
    ch : char;

Begin
Clrscr;
k := 0;
 Write('Введите строку (Enter - конец ввода): ');
 Repeat
  ch := ReadKey;
  Write(ch);
  k := k+1;
  if s <> #13 then s := s+ch;
 Until (ch=#13) or (k=253);

 writeln;
{$i-}
 Repeat begin
             Write('Введите положительное количество пробелов: ');
             Read(n);
        end;
 until (IOResult = 0) and (n>=0)  ;
{$i+}

for i:=1 to length(s) do
         begin
              if (s[i]=' ') and (s[i-1]<>' ') then for j:=1 to n do sr:=sr+' '
              else if s[i]<>' '  then sr := sr+s[i];
         end;

writeln(sr);

readkey;
end.
Вопросы: можно ли как то сделать полный вывод строки, т.е. более 255 символов? Например я ввёл первоначально строку, состоящую из 125 букв(каждая буква отделена друг от друга пробелом), количество пробелов задал 10. В итоге новая строка будет содержать 125 букв и 1250 пробелов, но выводится может не более 255 символов. Пытался сделать через массив но что-то не получилось. Руки не оттуда растут.
Помогите решить, плиз.
MaxMelnikov вне форума Ответить с цитированием
Старый 15.12.2008, 15:42   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses crt;
var s,sub:string;
    i,j,m,n:integer;
    a:array[1..100] of string;

begin
clrscr;
writeln('Input str');
readln(s);
i:=0;n:=0;
repeat
inc(i);
if (s[i]=' ')and(s[i+1]<>' ') then begin
                   inc(n);
                   a[n]:=sub;
                   sub:='';
                   end
else if s[i]<>' ' then sub:=sub+s[i];
until i=length(s);
if sub<>'' then begin
inc(n);
a[n]:=sub;
end;
writeln('Input kol-vo probelov');
readln(m);
writeln;
for i:=1 to n do
 begin
  write(a[i]);
  if i<>n then
  for j:=1 to m do
   write(' ');
 end;
readln;
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать программу c выводом строки задом наперед(Pascal) Batman10000 Помощь студентам 2 14.12.2008 18:54
Проблема с выводом строки kezman Общие вопросы C/C++ 1 30.08.2008 20:41
Помогите с кнопочкой и выводом результатом diznt Помощь студентам 50 24.08.2008 21:38
Помогите с выводом из файла в ComboBox!!! lamir Общие вопросы Delphi 3 31.05.2008 19:54
Проблемка с выводом Gladiator Общие вопросы Delphi 2 28.05.2008 19:51