2010-07-09 5 views
1

Я пишу метод, чья подписьстрока содержит допустимые символы

bool isValidString(std::string value) 

Внутри этого метода я хочу найти все символы в value являются относится к набору символов, который является константной строки

const std::string ValidCharacters("abcd") 

Для выполнения этого поиска я беру один символ из value и выполняю поиск в ValidCharacters, если эта проверка завершилась неудачно, это неверная строка, есть ли какой-либо другой альтернативный метод в библиотеке STL для этой проверки.

ответ

9

Использование find_first_not_of():

bool isValidString(const std::string& s) { 
    return std::string::npos == s.find_first_not_of("abcd"); 
} 
-1

вы можете использовать регулярные выражения для поиска по шаблону. библиотека regexp.h должна быть включена

http://www.digitalmars.com/rtl/regexp.html

+0

Это D, а не C++. – Puppy

+0

Вы даже перешли к ссылке и прочитали первую строку – Crazyshezy

+0

@Dead: Хотя его overkill здесь: * «RegExp - это класс C++ для обработки регулярных выражений». * –

Смежные вопросы