Найти пунктуацию в переполнении стека

Я работаю с вектором и пытаюсь заполнить вектор списком слов из текстового файла при условии, что слово не имеет пунктуации. Я смотрю на каждую строку как на строку и пытаюсь найти хороший способ проверить, есть ли в строке пунктуация.

У меня есть что-то подобное для всех апострофов в строке, но мне нужно обобщить это на все знаки препинания. Если в строке нет апострофов, переходите к остальной части кода.

if ((find(line.begin(), line.end(), '\'')) == line.end())

Я довольно новый, и любая помощь будет оценена. Я рассмотрел, возможно, с помощью функции ispunct (), но не мог понять, как реализовать это в этом.

0

Решение

Ты можешь использовать станд :: any_of а также станд :: ispunct.

При использовании чего-то вроде std::any_of или же std::find_if самое простое — передать лямбда.

Для вашего случая это будет выглядеть так

#include <iostream>
#include <algorithm>
#include <cctype>

int main() {
std::string str = "fdsfd/jl";

if (std::any_of(str.begin(), str.end(), [](char c){ return std::ispunct(c); } ))
std::cout << "PUNCT!";
return 0;
}

Наша лямбда [](char c){ return std::ispunct(c); } возьмет один символ и вернет результат std::ispunct на этом персонаже

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]