Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
yatak
1

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

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

Author24 — интернет-сервис помощи студентам
Задание: удалить последовательности, состоящие из 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))
результат тот же
помогите, пожалуйста!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2012, 18:18
Ответы с готовыми решениями:

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

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

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

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

3
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
11.11.2012, 18:55 2
Цитата Сообщение от yatak Посмотреть сообщение
while (*ps3 == ' ' && *(ps3 + 1) == ' ')
попробуйте убрать
C++
1
&& *(ps3 + 1) == ' '
0
yatak
12.11.2012, 10:54 3
если так сделать, то он будет искать и удалять все пробелы,
а мне нужно только, чтобы были удалены последовательности из 2ух и более пробелов
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
12.11.2012, 11:21 4
yatak, вам нужно сразу найти индекс первого и последнего пробела, сохранить их и только потом удалять по этим индексам.
0
12.11.2012, 11:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2012, 11:21
Помогаю со студенческими работами здесь

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

Найти в строке последовательности, состоящие из более чем трех одинаковых символов
Если в строке имеются последовательности, состоящие из более чем трех одинаковых символов, то...

Удалить из строки слова, состоящие не более чем из двух букв
напишите пожалуйста код к задаче: Удалить из строки слова, состоящие не более чем из двух букв.

В символьной строке удалить все слова, состоящие более чем из N букв
Привет. Нужна помощь. Условие-В символьной строке удалить все слова, состоящие более чем из N...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru