Есть набор строк, написать функцию, которая принимает на вход этот набор строк и возвращает новый набор строк, где в каждом из строк удалено все знаки препинания: ",.!:" Используя: std::remove_if, std::erase, std::transform То что у меня уже есть но не работает и нужна ваша помощь:
Код | #include "stdafx.h" #include <string> #include <vector> #include <iostream> #include <algorithm> #include <iterator> std::vector<char> remove(std::vector<char>& s) { if (std::any_of(s.begin(), s.end(), ispunct)) s.erase(std::remove_if(s.begin(), s.end(), ispunct), s.end()); return s; }
bool shouldBeRemoved(char words) { std::vector<char> vector; for (int index = 0; index < vector.size(); ++index) vector.emplace_back(words); std::transform(vector.begin(), vector.end(), vector.begin(), &remove); }
int main() { char words[] = { "The requested page title was invalid, empty, or: an incorrectly linked inter-language! or inter-wiki title. It may contain one or more, characters that cannot, be used in titles." }; shouldBeRemoved(*words); for (const auto& i : words) { std::cout << i << "\n"; } return 0; }
|
|