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

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

Войти
Регистрация
Восстановить пароль
 
Unnamed2
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 5
#1

Вычитатель пробелов(удалить из текста лишние пробелы) - C++

21.01.2013, 21:29. Просмотров 562. Ответов 6
Метки нет (Все метки)

Помогите создать программу которая вычитает лишние пробелы из текста который надо ввести с клавиатуры(между словами должно быть не более 1 пробела, если будет 2 или более программа должна удалить пробел)

Добавлено через 9 минут
Уже нашел ответ.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.01.2013, 14:54     Вычитатель пробелов(удалить из текста лишние пробелы) #2
Цитата Сообщение от Unnamed2 Посмотреть сообщение
Уже нашел ответ.
Нашли ответ - поделитесь. Он может оказаться интересен другим пользователям.
Hello_World72
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 9
28.01.2013, 16:39     Вычитатель пробелов(удалить из текста лишние пробелы) #3
Писал подобную программу
C++
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
#include "stdafx.h" 
#include <iostream>
#include <string.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    char str[] = "привет           Карамзин             by Макулатура";
 
    int m = strlen(str);
 
    puts(str);
 
    for (int i = 0; i < m; i++)
        while ((str[i] ==' ') && (str[i+1]==' '))
            for (int j = i+1; j < m; j++)
                str[j] = str[j+1];
            
    
    puts(str);
 
    system("PAUSE");
}
Somebody
2775 / 1589 / 142
Регистрация: 03.12.2007
Сообщений: 4,162
Завершенные тесты: 1
28.01.2013, 18:50     Вычитатель пробелов(удалить из текста лишние пробелы) #4
C++
1
2
for (char *dst = str, *src = str; (*dst = *src++) != '\0'; )
    dst += (*src != ' ' || *dst != ' ');
shadowcraft94
 Аватар для shadowcraft94
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 18
28.01.2013, 21:26     Вычитатель пробелов(удалить из текста лишние пробелы) #5
Цитата Сообщение от Hello_World72 Посмотреть сообщение
Писал подобную программу
C++
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
#include "stdafx.h" 
#include <iostream>
#include <string.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    char str[] = "привет           Карамзин             by Макулатура";
 
    int m = strlen(str);
 
    puts(str);
 
    for (int i = 0; i < m; i++)
        while ((str[i] ==' ') && (str[i+1]==' '))
            for (int j = i+1; j < m; j++)
                str[j] = str[j+1];
            
    
    puts(str);
 
    system("PAUSE");
}
А может лучше написать в два символьных массива, да бы уменьшить процессорное время?
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12532 / 7094 / 797
Регистрация: 27.09.2012
Сообщений: 17,504
Записей в блоге: 2
Завершенные тесты: 1
28.01.2013, 21:35     Вычитатель пробелов(удалить из текста лишние пробелы) #6
Цитата Сообщение от Hello_World72 Посмотреть сообщение
Писал подобную программу
Не удаляет пробелы вначале и в конце.
Цитата Сообщение от Somebody Посмотреть сообщение
C++
1
2
for (char *dst = str, *src = str; (*dst = *src++) != '\0'; )
    dst += (*src != ' ' || *dst != ' ');
тоже самое
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2013, 22:08     Вычитатель пробелов(удалить из текста лишние пробелы)
Еще ссылки по теме:

Удалить лишние пробелы C++
Удалить все лишние пробелы C++
Удалить лишние пробелы в строке C++
Удалить из текста лишние пробелы (из нескольких подряд идущих пробелов оставить только один) C++
C++ Удалить лишние пробелы в строке

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6227 / 3472 / 424
Регистрация: 29.11.2010
Сообщений: 9,178
28.01.2013, 22:08     Вычитатель пробелов(удалить из текста лишние пробелы) #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <sstream>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::istringstream ist(str);
    std::copy(std::istream_iterator<std::string>(ist),
              std::istream_iterator<std::string>(),
              std::ostream_iterator<std::string>(std::cout, " ") );
}
Yandex
Объявления
28.01.2013, 22:08     Вычитатель пробелов(удалить из текста лишние пробелы)
Ответ Создать тему
Опции темы

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