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

Нахождение двойных пробелов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти наибольший элемент массива в каждой строке. http://www.cyberforum.ru/cpp-beginners/thread617552.html
Дан массив из n x m элементов. Найти наибольший элемент массива в каждой строке.
C++ Веведение текста непосредственно на экран Доброго времени суток всем, кто посетил эту тему. Я новичёк в программировании на c++. Заинтересовала такая вещь: Как вывести текст непосредственно на экран, а не в консоль. Т.е. вывел текст он постоял 5 секунд и исчез. Мои размышления: Создать окно как в WipApp и фон сделать прозрачным. И после в этом же окне написать текст. http://www.cyberforum.ru/cpp-beginners/thread617525.html
C++ Объявление переменных внутри блока switch
#include <iostream> int main() { int choice = 2; switch(choice) { //case 1: int x = 1; break; // ошибка case 1: int x; x = 1; break; // почему нет ошибки?
Из Паскаля в С++ C++
Здравствуйте. Помогите переписать этот код на C++. Сам пробовал, но не получается. var a,b:string; begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); readln(a); read(b); a:=a+'a'; b:=b+'a'; while a+b<'aa' do
C++ Меню в консольном режиме.Текстовую с вводом номера строки, которую надо реализовать http://www.cyberforum.ru/cpp-beginners/thread617491.html
Как написать? с чего начать? Где можно почитать об этом?
C++ О размере циклов, break и производительности Начало обсуждения здесь. Представь себе цик на тройку-пятёрку экранов Ага, зато это хороший стиль программирования. Функции? Не, не слышал. подробнее

Показать сообщение отдельно
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
02.07.2012, 01:28     Нахождение двойных пробелов
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 <fstream>
#include <string>
#include <iterator>
#include <iostream>
#include <algorithm>
 
template <typename Iterator>
class RemoveExtraSpacesFunctor {
public:
  RemoveExtraSpacesFunctor(Iterator _it) : state(AFTER_NON_SPACE), it(_it) {}
  void operator()(const char sym) { 
    bool space = is_space(sym);
    if (state == AFTER_NON_SPACE) {
        state = space ? AFTER_SPACE : AFTER_NON_SPACE;
    } else {
        if (space) return; 
        else state = AFTER_NON_SPACE;
    }
    *it++ = sym;
  }
  static bool is_space (const char sym) {
    return isspace(sym) && sym != '\n';
  } 
private:
  enum State { AFTER_SPACE, AFTER_NON_SPACE } state;
  Iterator it;
};
 
int main() {
  std::ifstream f1 ("3.cpp");
  std::ofstream f2 ("2.txt");
  RemoveExtraSpacesFunctor<std::ostream_iterator<char> > it = std::ostream_iterator<char>(f2);
  f1 >> std::noskipws;
  std::for_each  (std::istream_iterator<char>(f1), 
                  std::istream_iterator<char>(),
                  it); 
}
Добавлено через 14 минут
хотя можно так, правда тут наверно дек вместо вектора стоит взять

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
#include <fstream>
#include <vector>
#include <iterator>
#include <iostream>
#include <algorithm>
 
class IsExcessSymbol {
public:
  bool operator()(const char sym) { 
    bool space = is_space(sym);
    if (state == AFTER_NON_SPACE) {
        state = space ? AFTER_SPACE : AFTER_NON_SPACE;
    } else {
        if (space) return true; 
        else state = AFTER_NON_SPACE;
    }
    return false;
  }
  static bool is_space (const char sym) {
    return isspace(sym) && sym != '\n';
  } 
private:
  enum State { AFTER_SPACE, AFTER_NON_SPACE } state;
};
 
int main() {
  std::ifstream f1 ("3.cpp");
  std::ofstream f2 ("2.txt");
  std::vector<char> tmp;
  f1 >> std::noskipws;
  
  std::copy (std::istream_iterator<char>(f1), std::istream_iterator<char>(), std::back_inserter(tmp));
  tmp.erase(std::remove_if(tmp.begin(), tmp.end(), IsExcessSymbol()), tmp.end());
  std::copy (tmp.begin(), tmp.end(), std::ostream_iterator<char>(f2));
}
 
Текущее время: 00:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru