Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2007, 02:18   #1
Комильфо
 
Регистрация: 09.11.2007
Сообщений: 3
По умолчанию Помогите решить. Паскаль. Работа со строками. Удалить лишние пробелы.

Помогите, пожалуйста

Цитата:
Отредактировать предложение, удаляя из него лишние пробелы, оставляя только по одному пробелу между словами
Пыталась решить несколькими способами, но программа либо выдает изначально введенную строку, либо зависает.
Вот один из вариантов решения, подскажите что не так??

Цитата:
Program probe1i;
var
a:string;
i,j:integer;
begin
writeln('Bведитe пpeдложениe');
readln(a);
x:=chr(32);
while i<255 do begin
if a[i]=x then
if a[i+1]=x then
delete(a,i+1,1);
end;
writeln(a);
end.
Заранее благодарю
Комильфо вне форума Ответить с цитированием
Старый 10.11.2007, 07:05   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Попробуй так
Код:
Program probe1i;
var
  a:string;
  i,j:integer;
  x: char;
begin
  writeln('Bведитe пpeдложениe');
  readln(a);
  x:=chr(32);
  i:=1;
  while i < length(a) do
    begin
      if a[i]=x then
        while a[i+1]=x do
          delete(a,i+1,1);
      i:=i+1;
    end;
  writeln(a);
end.
код не оптимален, но работает
_Dmitry вне форума Ответить с цитированием
Старый 10.11.2007, 10:36   #3
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Уж извините но я привык к консольному приложению делфи...... Поэтому пишу пока только в нём...

Код:
program Project1;

{$APPTYPE CONSOLE}
var mes, mesK: string;
    per, vto: char;
    i: integer;

begin
Write ('Введите предложение :'); Readln (mes);

    for i := 1 to length(mes) do
     begin
       per := mes[i];
       vto := mes[i+1];
          if (per = ' ') and (vto = ' ') then
           mesK := ''
          Else
           mesK := per + vto;
    Write (mesk);
    End;
Readln;
end.
Гы.... косяки есть... но это так.. код к размышлению.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 10.11.2007, 21:42   #4
Комильфо
 
Регистрация: 09.11.2007
Сообщений: 3
По умолчанию

Спасибо за помощь!! Сама не додумалась, а все просто...
Комильфо вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удалить лишние пробелы со строки так чтобы между символами осталось по одному пробелу delphi MASIK Общие вопросы Delphi 7 22.12.2010 18:23
Помогите решить задачу(Паскаль) KocT9 Помощь студентам 1 02.06.2008 22:22
Помогите решить задачу с динамическими массивами и строками символов Andres Помощь студентам 2 31.01.2008 11:09
Помогите понять в чем ошибка (работа со строками) Edimus Общие вопросы C/C++ 1 22.11.2007 14:09
удалить лишние пробелы со строки так чтобы между символами осталось по одному пробелу c++ DimaG Общие вопросы C/C++ 1 01.11.2007 21:50