Функции на проверку чисел, календарной даты и палиндрома - C (СИ)
Формулировка задачи:
Добрый день, господа.
Есть одна проблема.
В иностранном учебнике есть такое задание, перевожу:
"Нужно написать программу для простой обработки слов из текста. В программе должны быть функции на проверку чисел, календарной даты и палиндрома. Текстом является стандартный ввод(stdin). Файл должен читаться по слову с помощью спецификатора %s функции scanf."
У нас есть текст:
После выполнения программы текст должен выглядеть так:
Господа, пожалуйста, помогите с выполнением этого задания или направьте меня в нужное русло мышления, ибо в программировании я новичок. Буду премного благодарен.
$ cat data.txt Hello, world! Created on 2015-08-26 having 13 words out of which 8 = 4+4 contains o.
$ ./proj1 <data.txt word: Hello, word: world! word: Created word: on date: Wed 2015-08-26 word: having number: 13 (prime) word: words word: out word: of word: which number: 8 word: = (palindrome) word: 4+4 (palindrome) word: contains word: o.
Решение задачи: «Функции на проверку чисел, календарной даты и палиндрома»
textual
Листинг программы
#include <stdio.h> int is_date(char *buf) { return 0; } int is_number(char *buf) { return 0; } int is_palindrome(char *buf) { char *start=buf,*end; while (*buf) { end=buf; buf++; } while (end>=start) { if (*end!=*start) return 0; end--; start++; } return 1; } int main(void){ char buf[81]; puts("Enter the text, Ctrl+Z for exit\n"); while(scanf("%s",buf)==1) { if (is_date(buf)) printf ("\ndate: %s",buf); else if (is_number(buf)) printf ("\nnumber: %s",buf); else if (is_palindrome(buf)) printf ("\npalindrome: %s",buf); else printf ("\nword: %s",buf); } getchar(); return 0; }
Объяснение кода листинга программы
- Объединение функций для проверки разных типов данных: даты, числа и палиндрома.
- Функция is_date() возвращает 0, всегда, независимо от введённых данных.
- Функция is_number() возвращает 0, всегда, независимо от введённых данных.
- Функция is_palindrome() проверяет, является ли строка палиндромом.
- В функции main() используется цикл while для получения данных от пользователя и проверки их типа.
- Введенные данные сохраняются в массиве buf[81].
- Если пользователь вводит число, программа выводит сообщение
number:
и введённое число. - Если пользователь вводит слово, программа выводит сообщение
word:
и введённое слово. - Если пользователь вводит дату, программа выводит сообщение
date:
и введённую дату. - Если пользователь вводит палиндром, программа выводит сообщение
palindrome:
и введённый палиндром. - Если пользователь вводит некорректные данные, программа не выполняет никаких действий.
- Программа завершается после нажатия клавиши Ctrl+Z.
- Программа не обрабатывает ошибки и исключения.
- Программа не использует библиотеки для работы с датами и числами.
- Программа не сохраняет введённые данные для последующего использования.
- Программа не позволяет пользователю выполнять дополнительные действия с данными.
- Программа не предоставляет пользователю возможности настройки или изменения алгоритмов проверки.
- Программа не содержит комментариев, объясняющих работу кода.
- Программа не содержит инструкций по использованию.
- Программа не содержит возможностей для расширения функциональности.