Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
1

Преобразовать все идущие подряд пробелы в один

10.12.2011, 23:04. Просмотров 2920. Ответов 5
Метки нет (Все метки)

Считывайте по одному символу, и со второго шага проверяйте, не равен ли элемент пробелу, если да, то проверьте, не равен ли элемент предыдущему,
если равен то не записывайте очередной элемент в массив, который будем выводить, не забудьте записать первый символ.
Дана строка, Вам требуется преобразовать все идущие подряд пробелы в один.
Формат входных данных

Длина строки не превосходит 1000.
Формат выходных данных

Выведите измененную строку.
Пример входных и выходных данных
Входные данные Выходные данные
␣d␣hky␣k ␣d␣hky␣k
␣␣tnbnv␣␣l ␣tnbnv␣l
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2011, 23:04
Ответы с готовыми решениями:

В заданной строке заменить подряд идущие пробелы на один пробел
Написать программу: В заданной строке заменить подряд идущие пробелы на один...

Сформируйте число, в котором все подряд идущие одинаковые цифры исходного числа заменены одной соответствующей цифрой
Дано восемнадцатизначное число. Сформируйте новое число, в котором все подряд...

Напечатать заданный текст, удалив из него лишние пробелы, т.е. из нескольких подряд идущих пробелов оставить только один
Дан текстовый файл, содержащий строки. Напечатать заданный текст, удалив из...

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

В массиве A=(a1, а2, ..., аn) удалить все подряд идущие отрицательные элементы, идущие вслед за минимальным элементом массива.
Помогите написать на паскале программу для: В массиве A=(a1, а2, ..., аn)...

5
Puporev
Модератор
54697 / 42112 / 29076
Регистрация: 18.05.2008
Сообщений: 99,386
11.12.2011, 12:00 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
uses crt;
var s:array[1..1000] of char;
    a,b:char;
    n,i:integer;
begin
writeln('Введите символы строки в том числе последовательности пробелов');
writeln('окончание ввода Enter или 1000 символов');
n:=1;
repeat
a:=readkey; //читаем код первого символа, он не Enter
until a<>#13;
write(a);/выводим
s[1]:=a; //пишем в массив
repeat  //вводим остальные
b:=readkey;
if b<>#13 then write(b);
if not(b in [#13,' '])or((b=' ')and(a<>' ')) then
//если не Enter и не пробел или пробел, но перед ним не пробел
 begin
  n:=n+1; //считаем
  s[n]:=b;//в массив
 end;
a:=b; //запоминаем, будет предыдущим
if b=#13 then writeln;
until (b=#13)or(n=1000);
writeln;
for i:=1 to n do
write(s[i]);
end.
1
wazler
2 / 2 / 0
Регистрация: 04.12.2011
Сообщений: 119
12.12.2011, 21:08  [ТС] 3
Pascal
1
2
3
4
5
6
7
8
9
    var i:integer;
    s,s1:string;
    begin
    readln(s);
    for i:= 1 to length(s)do
    if (s[i]=' ') and (s[i+1]=' ') then
    s1:=s1+'' else s1:=s1+s[i];
    writeln(s1);
    end.
при вводе задачи на сайт пишут Частичное решение.

найдите пжл ошибку
0
KirIlI
1 / 1 / 3
Регистрация: 15.12.2013
Сообщений: 6
27.03.2014, 13:43 4
wazler, используй ansistring
0
derevyashka
1 / 1 / 0
Регистрация: 17.09.2015
Сообщений: 112
21.11.2016, 20:52 5
Подскажите, пожалуйста, а как сделать такую же программу только с нулями. То есть, все подряд идущие нули заменить одним?
0
Puporev
Модератор
54697 / 42112 / 29076
Регистрация: 18.05.2008
Сообщений: 99,386
21.11.2016, 20:55 6
Если задача такая же, то просто везде замените ' ' на '0'.
0
21.11.2016, 20:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2016, 20:55

Удалить из строки все подряд идущие одинаковые символы
Удалить из строки все подряд идущие одинаковые символы(КУмир/Паскаль)

Функция: заменить все подряд идущие одинаковые символы одним
Составить функцию преобразования строки, которая заменяет все подряд идущие...

Преобразовать последовательность s1, s2, ... sn, уничтожив в ней все запятые, идущие перед первой точкой
Дано натуральное число n и символы s1, s2, ... sn, среди которых есть хотя бы...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru