Считайте со стандартного ввода символ и выведите его 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 (string & S)
,
получающей в качестве параметра строку по ссылке и изменяющая символы этой строки.
Для перевода одного символа в нижний регистр напишите отдельную функцию.
Ввод | Вывод |
---|---|
Hello, world! |
hello, world! |
Даны две строки (возможно, с пробелами). Проверьте, равны ли они. Если строки равны, выведите
слово YES
, если строки не равны, выведите слово NO
.
Решение оформите в виде функции bool is_equal(const string &S1, const string & S2)
.
После того, как вы решите эту задачу, вам разрешается использовать оператор ==
для сравнения строк.
Ввод | Вывод |
---|---|
Hi |
NO |
Bye |
YES |
Даны две строки, не содержащие пробелов. Выведите конкатенацию этих строк.
Решение оформите в виде функции string concat(const string & s1, const string & s2)
,
получающей в качестве параметров две строки и возвращающей новую строку — их конкатенацию.
После того, как вы решите эту задачу, вам разрешается использовать оператор +
для конкатенации строк.
Ввод | Вывод |
---|---|
abcd |
abcdxyz |
Дана строка и параметры \(i\), \(k\). Напишите функцию, которая возвращает подстроку данной строки, начиная с символа с индексом \(i\) и длиной \(k\).
Решение оформите в виде функции string substr(const string & s, int i, int k)
.
Если \(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(string & 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(string & s, int i, const string & t)
,
которая модифицирует данную строку, не возвращая значения.
Если \(i<0\) или \(i\gt s.size()\), функция не модифицирует исходную строку.
Программа не должна использовать дополнительные вспомогательные строки.
Ввод | Вывод |
---|---|
abcde |
abxyzcde |
Даны две строки. Если первая строка меньше второй в лексикографическом порядке,
выведите слово less
. Если первая строка больше — выведите
слово greater
. Если строки равны — выведите слово
equal
.
Решение оформите в виде функции... Операциями сравнения для строк в этой задаче пользоваться нельзя.
Ввод | Вывод |
---|---|
banan |
less |
Дана строка, возможно, содержащая пробелы. Извлеките из этой строки все символы, являющиеся цифрами
и составьте из них новую строку.
Решение оформите в виде функции string extract_digits (const string & S)
, получающей
на вход исходную строку S
и возвращающую новую строку, содержащую только цифры
данной строки.
Указание. Заведите строку Answer
, пройдите по всем символам данной строки,
при обнаружении цифры добавляйте
ее в конец строки Answer
, увеличивая ее размер на 1.
По завершении цикла верните значение Answer
.
Ввод | Вывод |
---|---|
2+2=4 |
224 |
Дано слово, состоящее только из заглавных и строчных латинских букв.
Проверьте, верно ли что это слово читается одинаково как справа налево, так и слева направо
(то есть является палиндромом),
если считать заглавные и строчные буквы не различающимися.
Выведите слово YES
,
если слово является палиндромом и словов NO
, если не является.
Решение оформите в виде функции bool is_palindrome (const string & S)
.
При решении этой задачи нельзя пользоваться вспомогательными массивами или строками.
Ввод | Вывод |
---|---|
Radar |
YES |
YES |
NO |
Дана строка, состоящая из n цифр, между которыми стоит n-1 знак операции, каждый из которых может быть либо +, либо -. Вычислите значение данного выражения.
Решение оформите в виде функции int evaluate(const string & S)
.
Ввод | Вывод |
---|---|
1+2-3 |
0 |
Дана строка, содержащее запись в виде символов целого числа от
0 до 109-1. Определите значение этого числа в виде переменной
int. Решение задачи оформите в виде функции
int str_to_int(const string & S)
.
Функция main
должна быть такой:
int main() { string S; cin >> S; cout << StrToInt(S) << endl; return 0; }
Ввод | Вывод |
---|---|
179 |
179 |
Дана целое число от -109+1 до 109-1. Запишите это число в строку, то есть выполните преобразование, обратное предыдущей задаче (но только допускаются отрицательные числа).
Решение задачи оформите в виде функции
string 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(string & 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. |
Дана строка, возможно, содержащая пробелы. Определите количество слов в этой строке. Слово - это несколько подряд идущих букв (как заглавных, так и строчных).
Решение оформите в виде функции int count_words(const string & S)
.
При решении этой задачи нельзя пользоваться дополнительными строками и массивами.
Ввод | Вывод |
---|---|
Yesterday, all my troubles seemed so far away |
8 |
Дана строка. Найдите в этой строке самое длинное слово и выведите его.
Если в строке несколько слов одинаковой максимальной длины, выведите первое из них.
Решение оформите в виде функции string longest_word(const string & S)
.
Ввод | Вывод |
---|---|
In a hole in the ground there lived a hobbit. |
ground |
Дана строка. Измените регистр символов в этой строке так, чтобы первая буква каждого слова была заглавной, а остальные буквы - строчными.
Решение оформите в виде функции void capitalization(string & S)
.
Ввод | Вывод |
---|---|
In a hole in the ground there lived a hobbit. |
In A Hole In The Ground There Lived A Hobbit. |
Дано выражение одно из следующих видов: “A+B”, “A-B” или “A*B”, где A и B - целые числа от 0 до 109. Определите значение этого выражения.
Решение оформите в виде функции eval(const string & S)
.
Ввод | Вывод |
---|---|
2*2 |
4 |
100-101 |
-1 |
Даны две строки, возможно, содержащие пробелы.
Выведите слово YES
, если первая строка является подстрокой
второй строки или слово NO
в противном случае.
Решение оформите в виде функции bool is_substring(const string & Pattern, const string & Source)
.
Ввод | Вывод |
---|---|
hole in the ground |
YES |
hole on the ground |
NO |
Дана строка, содержащая одно или более целых чисел от 0 до 109, разделенных знаками “+” или “-”. Вычислите значение этого выражения.
Решение оформите в виде функции eval(const string & S)
.
Ввод | Вывод |
---|---|
21+7-10 |
18 |