Задания для самостоятельного выполнения

Напишите программу, решающую задачу по номеру своего варианта.

Требования и ограничения

Массивы символов использовать запрещено.

Указания по выполнению работы

Для использования символьных функций может понадобиться включить в программу заголовочный файл <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;
}

Варианты заданий

  1. Шифровать вводимую последовательность символов шифром Цезаря. Величину сдвига выберите самостоятельно, но предусмотрите возможность его быстрого изменения. Закончить ввод по нажатию [Enter].
  2. Выводить на экран ”символ-среднее арифметическое“ вводимой последовательности символов вместо символа, вводимого с клавиатуры. Закончить ввод по нажатию [F1].
  3. Определить, имеются ли во вводимой последовательности символов буквы и подсчитать их число. Закончить ввод по нажатию [PageUp].
  4. Переставлять соседние символы во вводимой последовательности символов. Например: при вводе Rise and Shine, Mr. Freeman. вывести на экран iResa dnS ihen ,rM .rFeeam.n. Закончить ввод по нажатию [PageDown].
  5. Определить, является ли вводимая последовательность символов верной записью вещественного числа. Закончить ввод по нажатию [End].
  6. Заменять во вводимой последовательности символов каждую цифру следующей за ней по порядку цифрой, считая, что за 9 идёт 0. Закончить ввод по нажатию [Backspace].
  7. Выводить на экран вводимые символы, а для функциональных клавиш - их скан-коды. Закончить ввод по нажатию [Delete].
  8. Выводить на экран вводимые символы, если они не являются алфвавитно цифровыми, выводить коды символов иначе. Закончить ввод по нажатию [Insert].
  9. Шифровать вводимую последовательность символов шифром Атбаш. Закончить ввод по нажатию [Home].
  10. Заменять во вводимой последовательности символов строчные буквы заглавными. Закончить ввод по нажатию [F8].
  11. Подсчитать частоту заданной тройки символов во вводимой последовательности символов. Закончить ввод по нажатию [Escape].
  12. Определить, имеются ли во вводимой последовательности символов цифры и подсчитать их число. Закончить ввод по нажатию [F11].