Как я могу эффективно проверить, есть ли в строке специальные символы в C ++?

Я пытаюсь найти лучший способ проверить, есть ли в строке специальные символы. В моем случае все, кроме буквенно-цифровых и "_", считается специальным символом. В настоящее время у меня есть строка, содержащая специальные символы, такие как std :: string = "! @ # $% ^ &". Затем я использую алгоритм std :: find_first_of (), чтобы проверить, присутствует ли какой-либо из специальных символов в строке.

Мне было интересно, как это сделать на основе белого списка. Я хочу указать строчные / прописные символы, числа и подчеркивание в строке (я не хочу их перечислять. Есть ли способ указать какой-то диапазон ascii, например [a-zA-Z0-9_] ). Как я могу этого добиться? Затем я планирую использовать std :: find_first_not_of (). Таким образом, я могу указать, чего я действительно хочу, и проверить обратное.

8
задан Jonathan Leffler 7 July 2011 в 02:49
поделиться