Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+1

Задание по программированию в языке СИ (Не С++)

Помогите пожалуйста с заданием, не могу разобраться не в формулировке, ни в том что надо писать, задание нужно выполнить на языке Си.
Требуется выделить в строке-предложении s все слова, разделенные символами-разделителями «_.,;:\n\t!?», и обработать выделенные слова в соответствии с вариантом задания.

Определения
Регулярное слово – слово, состоящее только из больших латинских
букв.
Палиндром – это слово, которое одинаково читается слева направо и
справа налево.

Алфавитный порядок задается таблицей ASCII.
Выделить в строке-предложении s все слова, разделенные символа- ми-разделителями «_.,;:\n\t!?». Обработать выделенные слова в соответствии с вариантом.
Вариант
A1. Напечатать все слова, начинающиеся на большую и заканчивающиеся на меленькую букву.
Строка предложения задается с клавиатуры, в любом объёме.
Помогите чем сможете, сижу носом клюю уже. А сделать надо, сессия близится. Задание по словам препода очень легкое, но я не знаю как вообще это сделать.

По дате
По рейтингу
Аватар пользователя
Мастер

И что вас смущает?
1) Разделение слова в соответствии с разделителями - Применяйте strtok() из <string.h>
2) Возьмите слово и пробегитесь в цикле по нему функцией isupper() из <ctype.h> .
Если хоть раз вернёт 0 - Значит слово не соответствует определению "регулярное"
3) Разделите размер слова пополам и в цикле сравнивайте [i] и [n-i] элементы. Если хоть раз проверка не пройдёт - значит слово не соответствует определению "Палиндром"
4) А1 - Проверить первую и последнюю букву слова функциями isupper() и islower() соответственно, из всё той же <ctype.h> .
5) Что бы считать полную строку из консоли воспользуйтесь функцией gets() из <stdio.h>
Если пользуетесь Visual Studio - не забудьте включить поддержку последнего стандарта языка и включить макрос "_CRT_SECURE_NO_WARNINGS"