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

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

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

Удалить из текста повторные пробелы - C++

13.11.2011, 22:17. Просмотров 523. Ответов 5
Метки нет (Все метки)

Задача: удалить из текста повторные пробелы!
подскажите как можно лучше это реализовать методами stl (обойтись без цикла, если это возможно).
вот мой код:
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
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <string>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
bool func (char i)
{
    return i != ' ';
}
int main ()
{
    freopen ("input.txt","r",stdin);
    string a;
    getline(cin,a);
    typedef vector<char> myv;
    myv v;
    myv::iterator it;
    myv::iterator it2;
    int l = a.length();
    for (int i = 0; i < l; i++)
    {
        v.push_back(a[i]);
    }
    it = v.begin();
    while (it != v.end())
    {
        it = find(it,v.end(),' ');
        it++;
        it2 = find_if(it,v.end(),func);
        v.erase(it,it2);
 
    }
    ostream_iterator<char> os(cout);
    copy(v.begin(),v.end(),os);
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2011, 22:17     Удалить из текста повторные пробелы
Посмотрите здесь:

Удалить из текста лишние пробелы - C++
Здравствуйте. Помогите написатьпрограмму на С. Удалить из текста лишние пробелы (между словами должен остаться только один пробел). И еще...

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

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

Удалить все пробелы из текста прочитанного из файла - C++
Необходимо: Создать файл file.txt с помощью текстового редактора, длина которого не превышает 80 символов. Написать программу, которая: ...

Удалить из текста лишние пробелы (из нескольких подряд идущих пробелов оставить только один) - C++
Вывести на экран заданный текст, удалив из него лишние пробелы, т.е. из нескольких подряд идущих пробелов оставить только один. При...

Удалить повторные записи из массива - C++
Всем привет, нужна небольшая помощь. Необходимо удалить повторяющиеся записи имени и адреса, как это реализовать? Либо просто вывести не...

Удалить повторные вхождения слов в предложение - C++
Дан файл, содержащий текст на русском языке. В предложениях некоторые из слов записаны подряд несколько раз (предложение заканчивается...

Дана строка. Удалить из строки повторные слова. - C++
Дана строка. Группы символов, разделенные пробелами(одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами....

Удалить из последовательности все повторные вхождения слов - C++
При запуске программы появляется ошибка Debug Assertion Failed. Помогите пожалуйста исправить программу, чтобы программа запускалась и...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
13.11.2011, 22:19     Удалить из текста повторные пробелы #2
Цитата Сообщение от hektor Посмотреть сообщение
freopen ("input.txt","r",stdin);
нехорошо мешать ++ и си.
hektor
0 / 0 / 0
Регистрация: 14.10.2010
Сообщений: 15
13.11.2011, 22:23  [ТС]     Удалить из текста повторные пробелы #3
хорошо, буду писать через fstream, а вот относительно задачи то как можно заменить цикл while?
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
13.11.2011, 23:24     Удалить из текста повторные пробелы #4
через unigue и бинарный предикат или transform
hektor
0 / 0 / 0
Регистрация: 14.10.2010
Сообщений: 15
16.11.2011, 01:26  [ТС]     Удалить из текста повторные пробелы #5
спасибо,работает)
вот код,кому нужно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <iterator>
#include <fstream>
using namespace std;
bool f (char i, char j)
{
  return (i == ' ' && j == ' ');
}
int main ()
{
    ifstream is("in.txt");
    string a;
    getline(is,a);
    string::iterator it = unique(a.begin(),a.end(),f);
    a.erase(it,a.end());
    copy(a.begin(),a.end(),ostream_iterator<char>(cout));
    cout << endl;
    return 0;
}
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
16.11.2011, 15:33     Удалить из текста повторные пробелы #6
hektor, так то лучше
Yandex
Объявления
16.11.2011, 15:33     Удалить из текста повторные пробелы
Ответ Создать тему
Опции темы

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