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

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

Войти
Регистрация
Восстановить пароль
 
ovner
7 / 7 / 0
Регистрация: 06.10.2012
Сообщений: 140
#1

std::copy_if - C++

24.07.2013, 00:24. Просмотров 1171. Ответов 3
Метки нет (Все метки)

Привет!
Подскажите пожалуйста как мне с помощью std::copy_if скопировать строку string со знаками пунктуации, в другую string строку, но уже без знаков пунктуации.
так не работает:
C++
1
2
3
4
string A = "Privet! Kak, dela?.,,A?";
    string B;
    copy_if(A.begin(),A.end(),B.begin(),!ispunct);
    cout << B;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2013, 00:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос std::copy_if (C++):

Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream - C++
Здравствуйте! Я хотел начать изучать язык C++. Набрал литературы. Установил Microsoft Visual C++ 2005 Express Edition. Образ диска...

copy_if - C++
Пусть у меня есть двумерный массив векторов, а также вектор, содержащий индексы тех строк массива, которые надо скопировать. Можно ли это...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

STL std::set, std::pair, std::make_pair - C++
Я не знаю как описать тему в двух словах, поэтому не обращайте внимание на название темы. Собственно перейдем к нашим баранам: есть...

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами - C++
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же числа, но не в виде строк, а в виде...

Копирование части вектора в другой вектор по условию, функцией copy_if - C++
Добрый день. Есть вектор структуры. Нужно сделать копию вектора по условию. Можно конечно в цикле перебирать элементы и сравнивать и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
24.07.2013, 01:16 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using std::cout;
using std::endl;
#include <string>
using std::string;
#include <algorithm>
using std::copy_if;
#include <iterator>
using std::back_inserter;
 
int main()
{
    string A="Privet! Kak, dela?.,,A?";
    string B;
    copy_if(A.begin(),A.end(),back_inserter(B),[](char a){return (!ispunct(a));});
    cout << B;
 
    return 0;
}
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
24.07.2013, 01:24 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <iterator>
#include <functional>
#include <algorithm>
 
int main(int argc, char** argv)
{
    std::string A = "Privet! Kak, dela?.,,A?", B;
    std::copy_if( A.begin(), A.end(), std::inserter(B, B.begin()), std::not1(std::ref(ispunct)) );
    std::cout << "Result: " << B << std::endl;
     
    return 0;
}
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
24.07.2013, 20:26 #4
В данном случае, больше подойдёт remove_copy_if, чем copy if
C++
1
std::remove_copy_if(s1.begin(), s1.end(), std::back_inserter(s2), ispunct);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2013, 20:26
Привет! Вот еще темы с ответами:

Поиск палиндрома. Итераторы. [ error: no matching function for call to ‘copy_if . ' ] - C++
Здравствуйте. Задача поиска палиндрома (выражения, в котором не имеет значение направление чтения букв). Сказано, чтобы не буквы...

Без глобальной переменной. Уникальные символы из строки на экран copy_if - C++
Смысл простой. Вывод на экран только уникальных символов из строки с сохранением порядка. Есть способы решения явными циклами, но они для...

(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& - C++
astxx::manager::connection::connection(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, unsigned short); ...

Реализация класса MyString. Стандартная библиотека, std::string, std::vector - C++
как добавить реализацию конкатенации строк через перегрузку оператора &quot;+=&quot; в классе MyString и почему ошибка выдается???#include...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.07.2013, 20:26
Ответ Создать тему
Опции темы

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