Хорошо, я постараюсь направить вас в правильном направлении.Во-первых, чтобы проверить строку, вам нужно будет перебирать ее символ за символом.Вы можете сделать это, используя итераторы и цикл for
.У класса string есть метод begin()
и end()
, который вы можете использовать для циклического перемещения по всей строке и проверки каждого символа.
После того, как вы зациклились над строкой, все, что вам нужно сделать, этонаписать код для проверки его на основе ваших требований.Чтобы убедиться в отсутствии знаков препинания, вы можете использовать функцию std::ispunct
, которая сообщит вам, является ли символ знаком препинания.Если вы найдете знаки препинания, просто сочтите это ошибкой.
Ваше первое требование, проверка наличия пустой строки, тривиально.У класса string есть метод empty()
, который возвращает true, если строка пуста.
Проверка дня рождения более сложна.Это то, для чего были созданы регулярные выражения.К сожалению, C ++ не имеет встроенной поддержки регулярных выражений (по крайней мере, до следующей версии стандарта).Если вам интересно, Boost имеет хорошую библиотеку регулярных выражений.
В противном случае вам придется перебрать строку и проверить каждый символ.Убедитесь, что строка начинается с символов, которые образуют слово, соответствующее названию месяца, затем убедитесь, что после этого ставится скобка и т. Д. Вам нужно будет решить, как обрабатывать пробелы между символами.Это будет сложно, но это хорошее практическое упражнение для знакомства с C ++.