Задание 5:
1. Создай программу, которая по заданной букве определяет и выводит на экран (например, ввод d, вывод 4, c, e): a) порядковый номер данной буквы в алфавите;
b) предыдущую букву;
c) последующую букву.
#include
using namespace std;
int main() {
char c;
cout << "Введите букву: ";
cin >> c;
// Определение порядкового номера буквы
int position = c - 'a' + 1;
cout << "Порядковый номер: " << position << endl;
// Определение предыдущей буквы
char prev = c - 1;
if (prev < 'a') {
prev = 'z';
}
cout << "Предыдущая буква: " << prev << endl;
// Определение следующей буквы
char next = c + 1;
if (next > 'z') {
next = 'a';
}
cout << "Следующая буква: " << next << endl;
return 0;
}
|
Программа использует арифметические операции для определения порядкового номера буквы в алфавите и для нахождения предыдущей и следующей буквы. Обратите внимание, что в случае, если предыдущая буква должна быть буквой 'a', а следующая - 'z', происходит циклическое зацикливание.
|
Задание 5
2. Создай программу, которая по заданному порядковому номеру
в алфавите определяет и выводит на экран (например, ввод 6, вывод f, e, g):
a) соответствующую букву;
b) предыдущую букву;
c) последующую букву.
#include
using namespace std;
int main() {
int num;
char letter;
cout << "Введите порядковый номер буквы: ";
cin >> num;
letter = 'a' + num - 1;
cout << "Соответствующая буква: " << letter << endl;
letter = 'a' + num - 2;
cout << "Предыдущая буква: " << letter << endl;
letter = 'a' + num;
cout << "Последующая буква: " << letter << endl;
return 0;
}
|
Обратите внимание, что в C++ символьные переменные могут хранить ASCII-коды символов. Поэтому, чтобы получить букву по порядковому номеру, мы используем выражение 'a' + num - 1. При этом, 'a' имеет ASCII-код 97, поэтому при num = 1 получится 'a' + 1 - 1, то есть 'a'. При num = 2 будет 'a' + 2 - 1, то есть 'b', и т.д.
|
#include
#include
using namespace std;
int main() {
setlocale(LC_ALL,"Russian");
char letter;
int code, index;
cout << "Введите порядковый номер=";
cin >> index;
code=index+96;
letter=char(code);
cout << "буква под номером " <cout << "Предыдущая буква: " <cout << "Последующая буква: " <return 0;
}
|
|
Задание 4. В офисных программах есть команда Регистр, которая
меняет регистр букв – заглавную букву заменяет строчной или строчную заглавной. Создай две аналогичные программы.
1. Заменяет заглавную букву строчной буквой. Например, A->a.
2. Заменяет строчную букву заглавной буквой. Например, z->Z.
1. Замена заглавной буквы на строчную:
#include
using namespace std;
int main() {
char c;
cout << "Введите символ: ";
cin >> c;
if (isupper(c)) {
c = tolower(c);
}
cout << "Результат: " << c << endl;
return 0;
}
|
Обе программы используют функции isupper() и islower(), чтобы проверить, является ли символ заглавной или строчной буквой. Если символ соответствует нужному регистру, то он заменяется на символ с противоположным регистром при помощи функций tolower() и toupper().
|
2. Заменяет строчную букву заглавной буквой. Например, z->Z.
#include
using namespace std;
int main() {
char c;
cout << "Введите символ: ";
cin >> c;
if (islower(c)) {
c = toupper(c);
}
cout << "Результат: " << c << endl;
return 0;
}
|
2 вариант без функции
#include
#include
using namespace std;
int main() {
setlocale(LC_ALL,"Russian");
char c;
int code;
cout << "Введите символ: ";
cin >> c;
code=char(c);
c=char(code-32);
cout << "Результат: " <
return 0;
}
|
Стандартная библиотека С++ также предоставляет ряд встроенных функций для работы с символами. В основном они связанны с проверкой символов:
1
|
isupper(c)
|
проверяет, является ли c заглавной буквой, по умолчанию от "A" до "Z"
|
2
|
islower(c)
|
проверяет, является ли c буквой нижнего регистра, по умолчанию от 'a' до 'z'
|
3
|
isalpha(c)
|
проверяет, является ли c алфавитным символом
|
4
|
isdigit(c)
|
проверяет, является ли c цифрой от '0' до '9'
|
5
|
isxdigit(c)
|
проверяет, является ли c шестнадцатеричной цифрой, от '0' до '9', от 'a' до 'f' или от 'A' до 'F'
|
6
|
isalnum(c)
|
проверяет, является ли c алфавитно-цифровым символом; аналогично isisalpha(c) || isdigit(c)
|
7
|
isspace(c)
|
проверяет, является ли c пробелом (' '), символом перевода строки ('\n'), возвратом каретки ('\r'), перевод страницы ('\f'), горизонтальная ('\t') или вертикальная ('\v') табуляция
|
8
|
isblank(c)
|
проверяет, является ли c пробелом (' ') или символом табуляция ('\t')
|
9
|
ispunct(c)
|
проверяет, является ли c символом пунктуации (один из следующих: _ { } [ ] # ( ) < > % : ; ? * + - / ^ & | ~ ! "=")
|
10
|
isprint(c)
|
проверяет, является ли c печатным символом, который включает прописные или строчные буквы,цифры, знаки пунктуации и пробелы
|
11
|
iscntrl(c)
|
проверяет, является ли c управляющим непечатным символом
|
12
|
isgraph(c)
|
проверяет, имеет ли c графическое представление
|
13
|
tolower(c)
|
переводит символ c в нижний регистр
|
14
|
toupper(c)
|
переводит символ c в верхний регистр
|
strlen() – подсчитывает длину строки (количество символов без учета \0);
strcat() – объединяет строки;
strcpy() – копирует символы одной строки в другую;
strcmp() – сравнивает между собой две строки
erase() - удаление заданного количества символов из строки. Функция
insert()- вставка символов в строке.
Достарыңызбен бөлісу: |