Задания для самостоятельного выполнения
Напишите программу, решающую задачу по номеру своего варианта.
Требования и ограничения
Массивы символов использовать запрещено.
Указания по выполнению работы
Для использования символьных функций может понадобиться включить в программу заголовочный файл <ctype.h>
. Ниже перечислены символьные функции, которые могут быть полезны при выполнении данной работы.
Функция | возвращает ненулевое значение, если c является … |
---|---|
isalnum(c) | буквой или цифрой |
isalpha(c) | буквой |
iscntrl(c) | управляющим символом |
isdigit(c) | цифрой |
isgraph(c) | любым печатаемым символом, но не пробелом |
islower(c) | строчной буквой |
isprint(c) | любым печатаемым символом, включая пробел |
ispunct(c) | знаком пунктуации |
isspace(c) | пробельным символом |
isupper(c) | заглавной буквой |
isxdigit(c) | шестнадцатеричной цифрой |
Функция | возвращает … , если c является буквой |
---|---|
toupper(c) | заглавный эквивалент c |
tolower(c) | строчный эквивалент c |
Если вы выполняете лабораторную работу в ОС семейства Windows - используйте пример из лекций. В ОС семейства Linux вместо функции getch() используйте функцию mygetch() из примера ниже:
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
int mygetch()
{
struct termios oldt, newt;
int c;
tcgetattr(STDIN_FILENO, &oldt);
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
c = getchar();
tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
return c;
}
int main()
{
while (1)
{
char a = mygetch();
printf("%c %d\n", a, a);
}
return 0;
}
Варианты заданий
- Шифровать вводимую последовательность символов шифром Цезаря. Величину сдвига выберите самостоятельно, но предусмотрите возможность его быстрого изменения. Закончить ввод по нажатию
[Enter]
. - Выводить на экран ”символ-среднее арифметическое“ вводимой последовательности символов вместо символа, вводимого с клавиатуры. Закончить ввод по нажатию
[F1]
. - Определить, имеются ли во вводимой последовательности символов буквы и подсчитать их число. Закончить ввод по нажатию
[PageUp]
. - Переставлять соседние символы во вводимой последовательности символов. Например: при вводе
Rise and Shine, Mr. Freeman.
вывести на экранiResa dnS ihen ,rM .rFeeam.n
. Закончить ввод по нажатию[PageDown]
. - Определить, является ли вводимая последовательность символов верной записью вещественного числа. Закончить ввод по нажатию
[End]
. - Заменять во вводимой последовательности символов каждую цифру следующей за ней по порядку цифрой, считая, что за
9
идёт0
. Закончить ввод по нажатию[Backspace]
. - Выводить на экран вводимые символы, а для функциональных клавиш - их скан-коды. Закончить ввод по нажатию
[Delete]
. - Выводить на экран вводимые символы, если они не являются алфвавитно цифровыми, выводить коды символов иначе. Закончить ввод по нажатию
[Insert]
. - Шифровать вводимую последовательность символов шифром Атбаш. Закончить ввод по нажатию
[Home]
. - Заменять во вводимой последовательности символов строчные буквы заглавными. Закончить ввод по нажатию
[F8]
. - Подсчитать частоту заданной тройки символов во вводимой последовательности символов. Закончить ввод по нажатию
[Escape]
. - Определить, имеются ли во вводимой последовательности символов цифры и подсчитать их число. Закончить ввод по нажатию
[F11]
.