Программа, позволяющая пользователю ввести символ и получить полную информацию о нем - C (СИ)
Формулировка задачи:
Пожалуйста, помогите написать программу, позволяющую пользователю ввести символ и получить полную информацию о нем (его код, или этот символ является буквой, цифрой, знаком препинания, управляющим символом и т.д.). Пользователь должен иметь возможность вводить символы пока не нажмет «ESC».
Решение задачи: «Программа, позволяющая пользователю ввести символ и получить полную информацию о нем»
textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
const char* GetType(const int c)
{
if (iscntrl(c)) return "control character";
if (isdigit(c)) return "decimal digit";
if (ispunct(c)) return "punctuation character";
if (isspace(c)) return "white-space";
if (isblank(c)) return "blanck character";
if (isupper(c)) return "uppercase letter";
return "lowercase letter";
}
void PrintCharInfo(const int c)
{
printf("Character data:\n"
"VAL DEC HEX TYPE\n"
" %c %3d %02hhX %s\n",
isprint(c) ? c : ' ', c, c, GetType(c)
);
}
int main(void)
{
for (int c = 0; c < 128; c++)
{
PrintCharInfo(c);
}
return 0;
}
Объяснение кода листинга программы
- #include
Включает в программу файл стандартного ввода/вывода, который содержит функции для работы с консолью. - #include
Включает в программу библиотеку, которая содержит функции для работы со строками и символами, в том числе функции для проверки типов символов. - *const char GetType(const int c)** Функция, которая принимает целочисленный параметр
cи возвращает указатель на строку, содержащую информацию о типе символа. Если символ является управляющим, возвращаетcontrol character. Если символ является десятичной цифрой, возвращаетdecimal digit. Если символ является знаком пунктуации, возвращаетpunctuation character. Если символ является пробелом, возвращаетwhite-space. Если символ является пустой клеткой, возвращаетblank character. Если символ является заглавной буквой, возвращаетuppercase letter. В противном случае возвращаетlowercase letter. - void PrintCharInfo(const int c) Функция, которая принимает целочисленный параметр
cи выводит информацию о символе в консоль. Информация выводится в виде таблицы, содержащей значения символа в десятичной, шестнадцатеричной системах счисления и его тип. - int main(void) Функция, которая является точкой входа в программу. Создает цикл, который проходит по всем символам от 0 до 127 и вызывает функцию
PrintCharInfo(). - for (int c = 0; c < 128; c++) Цикл, который проходит по всем символам от 0 до 127.
- PrintCharInfo(c); Вызывает функцию
PrintCharInfo()с текущим значением переменнойc. - return 0; Обозначает успешный конец работы программы.
- *const char GetType(const int c)** Эта функция возвращает строку, содержащую информацию о типе символа.
- void PrintCharInfo(const int c) Эта функция выводит информацию о символе в консоль.
- int main(void) Эта функция является точкой входа в программу.
- for (int c = 0; c < 128; c++) Этот цикл проходит по всем символам от 0 до 127.
- PrintCharInfo(c); Эта строка вызывает функцию
PrintCharInfo()с текущим значением переменнойc. - return 0; Это обозначает успешный конец работы программы.
- #include
Включает в программу файл стандартного ввода/вывода, который содержит функции для работы с консолью. - #include
Включает в программу библиотеку, которая содержит функции для работы со строками и символами, в том числе функции для проверки типов символов. - *const char GetType(const int c)** Эта функция возвращает строку, содержащую информацию о типе символа.
- void PrintCharInfo(const int c) Эта функция выводит информацию о символе в консоль.
- int main(void) Эта функция является точкой входа в программу.
- for (int c = 0; c < 128; c++) Этот цикл проходит по всем символам от 0 до 127.