Нужна помощь с одной олимпиадой
Всем привет! Нужна помощь с одной задачей из онлайн тура олимпиады по информатике. Я прекрасно понимаю, что это я её решаю, и я сам должен над всем думать. Но из 7 заданных задач смог решить только 4 (для прохода в следующий тур нужно решить 3) и хочется перестраховаться. Так же я понимаю, что никто мне бесплатно не будет решать эту задачу полностью, так что просто прошу предложить идею для решения. Язык C# или на крайний случай PascalABC.
Комментарии для минусов внутри.
Сама задача:
На вход программы поступает строка текста, в которой могут встречаться:
— прописные и строчные (т.е. большие и маленькие) латинские буквы;
— пробелы;
— знаки препинания: точка, запятая, восклицательный и вопросительный знак;
— символ –, обозначающий в некоторых случаях тире, а в некоторых — дефис.
Слово — это последовательность подряд идущих латинских букв и знаков дефис, ограниченная с обоих концов. В качестве ограничителей могут выступать начало строки, конец строки, пробел, знак препинания, тире. Тире отличается от дефиса тем, что слева и справа от знака дефис пишутся буквы, а хотя бы с одной стороны от тире идет либо начало строки, либо конец строки, либо пробел, либо какой-либо знак препинания, либо еще одно тире.
Напишите программу, определяющую, сколько слов в данной строке текста.
Входные данные
Вводится строка длиной не более 200 символов.
Выходные данные
Выведите одно число — количество слов, которые содержатся в исходной строке.
UPD: Возможно я неправильно сформулировал вопрос, но постараюсь по-другому. То что можно идти по строке и считать пробелы это и так понятно, вопрос в том, каким образом в переменной STRING проверять символы. Какой для этого потребуется оператор.