Удалить все четные числа [закрыто]

596
26 ноября 2016, 19:03

Дан текстовый файл, содержащий целые числа. Удалить из него все четные числа.

Answer 1

Удалить все четные числа из строки можно следующим образом, как показано в ниже приведенной демонстрационной программе.

#include <iostream>
#include <sstream>
#include <algorithm>
#include <iterator>
#include <cstring>
int main() 
{
    char s[] = "0 1 2 3 4 5 6 7 8 9";
    std::cout << s << std::endl;
    std::istringstream is( s );
    std::ostringstream os;
    std::copy_if( std::istream_iterator<int>( is ),
                  std::istream_iterator<int>(),
                  std::ostream_iterator<int>( os, " " ),
                  []( int x ) { return x % 2; } );
    std::strcpy( s, os.str().c_str() );
    std::cout << s << std::endl;

    return 0;
}

Вывод на консоль будет следующим

0 1 2 3 4 5 6 7 8 9
1 3 5 7 9 
Answer 2

src.src

0 1 2 3 4 5 6 7 8 9

log.log

 1  3  5  7  9

файл для [f]lex

%option noyywrap main
%%
[0-9]+      { int N = atoi(yytext); if (N % 2 == 1) printf(yytext); }

Makefile

log.log: src.src ./exe.exe
    ./exe.exe < $< > $@ && tail $@
C = lex.yy.c
./exe.exe: $(C)
    $(CXX) -o $@ $(C)
lex.yy.c: lpp.lpp
    flex $<

Связка flex/bison (lex/yacc) -- богатейший хинт для ввода любых текстовых данных, по сравнению с ним ни один язык программирования (кроме разве что perlа) вообще не содержит средств ввода данных 8-).

READ ALSO
Как удалить все под элементы tree view

Как удалить все под элементы tree view

Здравствуйте! Подскажите пожалуйста, как перебрать или удалить все под элементы выделенного элемента tree viewКод проверки на выделенность...

279
Существует ли Task-based Asynchronous Pattern (TAP) или его аналог в C++?

Существует ли Task-based Asynchronous Pattern (TAP) или его аналог в C++?

В средеNET есть замечательный асинхронный паттерн TAP, есть ли нечто подобное на C++ (не CLI)?

178