Проверка правильности ввода - C (СИ)
Формулировка задачи:
Нужно ввести с клавиатуры название страны и ее населения, как сделать проверку правильности ввода, чтобы в поле страна не могли бы вводиться числовые данные а в поле площадь Не могли бы вводиться текстовые данные?
Решение задачи: «Проверка правильности ввода»
textual
Листинг программы
#include <stdio.h> #include <ctype.h> #define BUFSIZE 55 int check_country_name(const char*); int check_area(const char*); int is_char(char); int main(void) { char buf[BUFSIZE]; printf("Input country: "); gets_s(buf, BUFSIZE); if(!check_country_name(buf)) { printf("Error!\n"); return -1; } printf("Input area: "); scanf("%55s", buf); if(!check_area(buf)) { printf("Error!\n"); return -2; } printf("Passed!\n"); return 0; } int check_country_name(const char *str) { for(const char *it = str; *it; ++it) { if(!is_char(*it)) { return 0; } } return 1; } int check_area(const char *str) { for(const char *it = str; *it; ++it) { if(!isdigit(*it) && *it != '.' && *it != ',') { return 0; } } return 1; } int is_char(char ch) { return ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || ch == ' ' || ch == '-'); }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяются функции, которые будут использоваться в программе
- Объявляются и инициализируются переменные, используемые в программе
- Выводится приглашение для ввода названия страны
- Вводится название страны с использованием функции gets_s
- Проверяется корректность введенного названия страны с помощью функции check_country_name
- Если название страны некорректно, выводится сообщение об ошибке и программа завершается с кодом -1
- Выводится приглашение для ввода площади страны
- Вводится площадь страны с использованием функции scanf
- Проверяется корректность введенной площади страны с помощью функции check_area
- Если площадь страны некорректна, выводится сообщение об ошибке и программа завершается с кодом -2
- Выводится сообщение о прохождении проверки
- Программа завершается с кодом 0
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д