Считайте со стандартного ввода символ и выведите его ASCII-код.
Решите эту задачу с использованием только одной переменной типа char
.
Программа получает на вход один символ с ASCII кодом от 33 до 126.
Ввод | Вывод |
---|---|
A |
65 |
Считайте со стандартного ввода целое число и выведите ASCII-символ
с таким кодом. Решите эту задачу с использованием только одной переменной
типа int
.
Программа получает на вход число от 33 до 126.
Ввод | Вывод |
---|---|
65 |
A |
Выведите все символы ASCII с кодами от 33 до 126 и их коды в следующем виде:
Вывод |
---|
! 33 " 34 # 35 ... } 125 ~ 126 |
Выведите подряд, без пробелов, все символы, лежащие в таблице ASCII между двумя заданными символами.
Программа получает на вход один символ с ASCII-кодом от 33 до 126, являющийся начальным символом интервала и число от 33 до 126, являющееся ASCII-кодом символа, завершающего интервал.
Ввод | Вывод |
---|---|
A 68 |
ABCD |
0 57 |
0123456789 |
Для данного символа, считанного со стандартного ввода, проверьте, является ли он цифрой. Программа должна вывести слово
YES
, если символ является цифрой, или слово NO
.
Решение оформите в виде функции bool is_digit(char c)
. В решении нельзя использовать циклы. В решении нельзя
использовать константы с неочевидным значением типа 48 или 57.
Ввод | Вывод |
---|---|
0 |
YES |
A |
NO |
Напишите функцию char to_upper(char c)
, которая переводит символ в верхний регистр, то есть для строчной
буквы латинского алфавита возвращает сооветствующую заглавную букву латинского алфавита, а для остальных символов возвращает тот же символ.
Считайте один символ со стандартного ввода и переведите его в верхний регистр. В решении нельзя использовать циклы. В решении нельзя использовать константы с неочевидным значением.
Ввод | Вывод |
---|---|
f |
F |
F |
F |
4 |
4 |
Напишите функцию char case_change(char c)
, меняющую регистр символа,
то есть переводящую заглавные буквы в строчные, а строчные — в заглавные, остальные символы
не меняющие.
Считайте один символ со стандартного ввода, выведите результат работы данной функции. В решении нельзя использовать циклы. В решении нельзя использовать константы с неочевидным значением.
Ввод | Вывод |
---|---|
f |
F |
F |
f |
4 |
4 |
Дана строка, возможно, содержащая пробелы. Считайте эту строку и переведите все символы этой строки в
нижний регистр. Решение оформите в виде функции void to_lower (char* S)
,
получающей в качестве параметра строку по ссылке и изменяющая символы этой строки.
Для перевода одного символа в нижний регистр напишите отдельную функцию.
Ввод | Вывод |
---|---|
Hello, world! |
hello, world! |
Даны две строки (возможно, с пробелами). Проверьте, равны ли они. Если строки равны, выведите
слово YES
, если строки не равны, выведите слово NO
.
Решение оформите в виде функции bool is_equal(const char* S1, const char* S2)
.
Ввод | Вывод |
---|---|
Hi |
NO |
Bye |
YES |
Даны две строки, не содержащие пробелов. Выведите конкатенацию этих строк.
Решение оформите в виде функции void concat(const char* s1, const char* s2, char* s3)
,
получающей в качестве параметров две строки и сохраняющую результат в третью строку — их конкатенацию.
Ввод | Вывод |
---|---|
abcd |
abcdxyz |
Дана строка и параметры \(i\), \(k\). Напишите функцию, которая сохраняет подстроку данной строки, начиная с символа с индексом \(i\) и длиной \(k\) в строку, переданную последним параметром.
Решение оформите в виде функции void substr(const char* s, int i, int k, char *substr)
.
Если \(i<0\), или \(i\ge s.size()\) или \(k<0\), то функция должна возвращать пустую строку.
Если \(i+k\ge s.size()\), то возвращается строка длиной \(s.size() - i\), то есть до конца строки.
Ввод | Вывод |
---|---|
abcdefghijk |
cdef |
abcdefghijk |
ghijk |
Дана строка и параметры \(i\), \(k\). Напишите функцию, которая удаляет из данной строки подстроку начиная с символа с индексом \(i\) и длиной \(k\).
Решение оформите в виде функции void erase(char* s, int i, int k)
,
которая модифицирует данную строку, не возвращая значения.
Если \(i<0\), или \(i\ge s.size()\) или \(k<0\), то функция не модифицирует исходную строку.
Если \(i+k\ge s.size()\), то удаляются все символы начиная с \(i\)-го до конца строки.
Программа не должна использовать дополнительные вспомогательные строки.
Ввод | Вывод |
---|---|
abcdefghijk |
abghijk |
abcdefghijk |
abcdef |
Дана строка \(s\), параметр \(i\), другая строка \(t\). Напишите функцию, которая вставляет в данную строку \(s\) начиная с индекса \(i\) строку \(t\).
Решение оформите в виде функции void insert(char* s, int i, const char* t)
,
которая модифицирует данную строку, не возвращая значения.
Если \(i<0\) или \(i\gt s.size()\), функция не модифицирует исходную строку.
Программа не должна использовать дополнительные вспомогательные строки.
Ввод | Вывод |
---|---|
abcde |
abxyzcde |
Даны две строки. Если первая строка меньше второй в лексикографическом порядке,
выведите слово less
. Если первая строка больше — выведите
слово greater
. Если строки равны — выведите слово
equal
.
Решение оформите в виде функции... Операциями сравнения для строк в этой задаче пользоваться нельзя.
Ввод | Вывод |
---|---|
banan |
less |
Дана строка, возможно, содержащая пробелы. Извлеките из этой строки все символы, являющиеся цифрами
и составьте из них новую строку.
Решение оформите в виде функции void extract_digits (const char* s, char* digits)
, получающей
на вход исходную строку S
и сохраняющую во вторую строку, только цифры данной строки.
Указание. Заведите строку Answer
, пройдите по всем символам данной строки,
при обнаружении цифры добавляйте
ее в конец строки Answer
, увеличивая ее размер на 1.
По завершении цикла верните значение Answer
.
Ввод | Вывод |
---|---|
2+2=4 |
224 |
Дано слово, состоящее только из заглавных и строчных латинских букв.
Проверьте, верно ли что это слово читается одинаково как справа налево, так и слева направо
(то есть является палиндромом),
если считать заглавные и строчные буквы не различающимися.
Выведите слово YES
,
если слово является палиндромом и словов NO
, если не является.
Решение оформите в виде функции bool is_palindrome (const char* S)
.
При решении этой задачи нельзя пользоваться вспомогательными массивами или строками.
Ввод | Вывод |
---|---|
Radar |
YES |
YES |
NO |
Дана строка, состоящая из n цифр, между которыми стоит n-1 знак операции, каждый из которых может быть либо +, либо -. Вычислите значение данного выражения.
Решение оформите в виде функции int evaluate(const char* S)
.
Ввод | Вывод |
---|---|
1+2-3 |
0 |
Дана строка, содержащее запись в виде символов целого числа от
0 до 109-1. Определите значение этого числа в виде переменной
int. Решение задачи оформите в виде функции
int str_to_int(const char* S)
.
Функция main
должна быть такой:
int main() { char* S; cin >> S; cout << StrToInt(S) << endl; return 0; }
Ввод | Вывод |
---|---|
179 |
179 |
Дана целое число от -109+1 до 109-1. Запишите это число в строку, то есть выполните преобразование, обратное предыдущей задаче (но только допускаются отрицательные числа).
Решение задачи оформите в виде функции
char* int_to_str(int n)
.
Функция main
должна быть такой:
int main() { int n; cin >> n; cout << IntToStr(n) << endl; return 0; }
Ввод | Вывод |
---|---|
-179 |
-179 |
В шифре Цезаря каждый символ заменяется на другой символ, третий по счету в алфавите после данного, с цикличность. То есть символ A заменяется на D, символ B - на E, символ C - на F, ..., символ Z на C. Аналогично строчные буквы заменяются на строчные буквы. Все остальные символы не меняются.
Дана строка, зашифруйте ее при помощи шифра Цезаря. Решение
оформите в виде функции void caesar_cipher(char* S)
.
Указание: сделайте функцию char caesar_cipher(char c)
,
шифрующую один данный символ.
Ввод | Вывод |
---|---|
In a hole in the ground there lived a hobbit. |
Lq d kroh lq wkh jurxqg wkhuh olyhg d kreelw. |