0 / 0 / 0
Регистрация: 19.01.2013
Сообщений: 8
1

Как удалить лишние пробелы

21.01.2013, 11:44. Показов 1027. Ответов 2
Метки нет (Все метки)

суть вот в чем.. пишу текст, некоторые слова с большим пробелом. и при выводе он его тоже выводит. как удалить эти лишние пробелы.. допишите как нибудь код не изменяя программу.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
uses crt;
 var a:array [1..20] of string[100];
     i,j,k,n,p:integer;
     mn:set of char;
     s,t,s2,s1:string;
 BEGIN
clrscr;
writeln('vvedi text');
readln(s);
mn:=['.',' ','?','!',','];
n:=0;
s2:='';
for i:=1 to length(s) do
 begin if not (s[i] in mn)  then
     begin  t:=t+s[i];
        if i=length(s) then
        begin inc(n);
        a[n]:=t;
        end;
        end
         else begin inc(n);
                    a[n]:=t;
                    t:='';
                   end;
      end;
      for i:=1 to n do
 begin if a[i]<>a[n] then
       begin for j:=1 to length(a[i])-1 do
 
                 for k:=j+1 to length(a[i]) do
                     if (a[i,j]<>a[i,k]) and (p=0) then p:=0 else p:=1;
                     if p=0 then s2:=s2+' '+a[i];
       end;
       p:=0;
 
 end;
 
 writeln('preobrazovanyu text:');
 writeln(s2);
 readkey;
 
END.
заранее благодарен
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2013, 11:44
Ответы с готовыми решениями:

Удалить лишние пробелы
1)Дана строка-предложение, содержащая избыточные пробелы. Преобразовать ее так, чтобы между словами...

Нужно удалить лишние пробелы в строке
Дана строка, нужно оставить между словами по одному пробелу, а остальные удалить Добавлено через...

В каждой строке удалить лишние пробелы и поставить ее по центру.
Дано N строк текста: в каждой строке удалить лишние пробелы и поставить ее(строку) по центру....

Удалить из файла все лишние пробелы, оставив между словами не более одного пробела
Дан текстовый файл. Удалить из него все лишние пробелы, оставив между словами не более одного...

2
Фрилансер
3417 / 2814 / 3000
Регистрация: 08.02.2012
Сообщений: 8,515
Записей в блоге: 1
21.01.2013, 11:53 2
После ввода текста его просто обрабатываешь вот так...
Pascal
1
2
For i:=Length(s) downto 2 do
 if (s[i]=' ')and(s[i-1]=' ') then Delete(s,i,1);
1
13094 / 5875 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
21.01.2013, 12:40 3
Или можно заменить:
Pascal
1
2
3
4
5
else begin
  inc(n);
  a[n]:=t;
  t:='';
end;
на:
Pascal
1
2
3
4
5
else if t <> '' then begin
  inc(n);
  a[n]:=t;
  t:='';
end;
И в перечень разделителей можно ещё добавить знак горизонтальной табуляции #9:
Pascal
1
mn:=['.',' ',#9,'?','!',','];
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2013, 12:40
Помогаю со студенческими работами здесь

Дан текст. Удалить лишние пробелы, если последняя буква первого слова совпадает с первой буквой последнего
Дан текст, слова которого отделяются друг от друга одним или несколькими пробелами. Удалить лишние...

Лишние пробелы в строке
Всем доброго времени суток! Вот такая интересная задачка как для меня - новичка в программировании)...

Во введенном тексте удалить все пробелы, если пробелы присутствуют
Создать программу, которая спрашивает имя пользователя и здоровается с ним. Затем, предлагается...

Описать процедуру TrimL(S), удаляющую в строке S лишние пробелы
Помогите пожалуйста человеку который нифига не разбирается в Паскали.... Плииииизззззззз ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru