Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
yatak
Сообщений: n/a
#1

Удалить последовательности, состоящие из 2 и более пробелов - C++

11.11.2012, 18:18. Просмотров 442. Ответов 3
Метки нет (Все метки)

Задание: удалить последовательности, состоящие из 2 и более пробелов. Использовать новые массивы и блоки запрещено.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include  <iostream>
#include  <string.h>
 
using namespace std;
 
int main()
{
    char tmp [80];
    char *ps;
 
    // Удаляем лишние пробелы. Смещаем указатель до конца выделенной области читая каждый символ.
        // Если символ ' ' и следующий за ним тоже, то в цикле смещаем все символы в памяти влево.
        for (char *ps3 = ps; *ps3; ps3++)
        {
            while (*ps3 == ' ' && *(ps3 + 1) == ' ')
            {
                for (char *ps4 = ps3; *ps4; ps4++)
                {
                    *ps4 = *(ps4+1);
}
Этот код у меня работает, но он оставляет 1 пробел, т.е. если было 12 пробелов он будет удалять, пока не останется один пробел, а мне нужно удалить, чтобы ни 1 не осталось (т.е. "слепить" два слова).
Я пробовала писать

if ((*ps3==' ') && (*(ps3+1)==' '))
{

while((*(ps3+1)==' ') && (*ps3))
результат тот же
помогите, пожалуйста!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2012, 18:18     Удалить последовательности, состоящие из 2 и более пробелов
Посмотрите здесь:

В символьной строке удалить все слова, состоящие более чем из N - букв - C++
Напихал все что можно, не работает. Программирования не знаю похоже):wall: #include &lt;iostream&gt; // огранизация ввод/вывод #include...

В символьной строке удалить все слова, состоящие более чем из N букв - C++
Не использовать дефолтные функции работы со строками (например strstr, strlen) -В символьной строке удалить все слова, состоящие более...

Последовательности следующих друг за другом пробелов заменить одним пробелом (т.е. удалить все пробелы, следующие непосредственно за пробелом) - C++
Последовательности следующих друг за другом пробелов заменить одним пробелом (т.е. удалить все пробелы, следующие непосредственно за...

Удалить группы пробелов, которыми начинается и заканчивается строка, а каждую внутреннюю группу пробелов заменить одним пробелом - C++
Задана строка символов. Преобразовать эту строку следующим образом: удалить группы пробелов, которыми начинается и заканчивается строка, а...

Записать слова, состоящие более чем из 10 букв - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cstring&gt; using namespace std; int main() { int words, count; char*...

Рассмотреть отрезки последовательности,состоящие из одинаковых чисел - C++
Доброе утро форум беда пришла не одна.:cry: Не знаю как бороться с этим :-| 2. Дан массив целых чисел. Рассмотреть отрезки...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13057 / 7320 / 817
Регистрация: 27.09.2012
Сообщений: 18,066
Записей в блоге: 3
Завершенные тесты: 1
11.11.2012, 18:55     Удалить последовательности, состоящие из 2 и более пробелов #2
Цитата Сообщение от yatak Посмотреть сообщение
while (*ps3 == ' ' && *(ps3 + 1) == ' ')
попробуйте убрать
C++
1
&& *(ps3 + 1) == ' '
yatak
Сообщений: n/a
12.11.2012, 10:54     Удалить последовательности, состоящие из 2 и более пробелов #3
если так сделать, то он будет искать и удалять все пробелы,
а мне нужно только, чтобы были удалены последовательности из 2ух и более пробелов
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2012, 11:21     Удалить последовательности, состоящие из 2 и более пробелов
Еще ссылки по теме:

Удалить слова, состоящие ровно из К символов - C++
Ввести стоку, распечатать. Удалить слова, состоящие ровно из К символов.Результирующию строку распечатать. Помогите кто может!

Переписать в новый файл только те строки, в которых более 5 пробелов - C++
большая просьба помочь, так у меня уже совсем ничего не получается((( была практика по программированию, но изучение с++ в теории мы...

Заменить в строке каждую последовательность из двух и более пробелов на один пробел - C++
Разработать алгоритм обработки строки символов,которая может содержать буквы английского алфавита,цифры,знаки препинания,пробелы,знаки...

В строке вывести последовательности состоящие из трех одинаковых подряд идущих символов - C++
Ввести строку с клавиатуры. Найти и вывести на экран последовательности, состоящие из трех одинаковых подряд идущих символов.

Массив целых чисел. Рассмотреть отрезки последовательности, состоящие из степеней пятерки - C++
Добрый день, у меня вот есть код на паскале, нужно перевести на с++. Не очень понятно, что там в функции выходит, и какие параметры мы...

Удалить из предложения слова, состоящие менее чем из 3 символов. - C++
Помогите пожалуйста в чем ошибка( Удалить из предложения менее, чем из 3 букв? #include &lt;iostream&gt; #include &lt;vector&gt; #include...


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

Или воспользуйтесь поиском по форуму:
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
12.11.2012, 11:21     Удалить последовательности, состоящие из 2 и более пробелов #4
yatak, вам нужно сразу найти индекс первого и последнего пробела, сохранить их и только потом удалять по этим индексам.
Yandex
Объявления
12.11.2012, 11:21     Удалить последовательности, состоящие из 2 и более пробелов
Ответ Создать тему
Опции темы

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