Програма C++ для перетворення int to char
У цій статті ми дізнаємося, як перетворити int на char у C++. Для цього перетворення існує 5 способів:
- Використання приведення типів. Використання static_cast. Використання sprintf(). Використання to_string() і c_str(). Використання stringstream.
Давайте почнемо з детального обговорення кожного з цих методів.
приклади:
введення: N = 65
Вихід: Авведення: N = 97
Вихід: a
1. Використання приведення типів
Спосіб 1:
- Оголошення та ініціалізація: для початку ми оголосимо та ініціалізуємо наше ціле число значенням, яке потрібно перетворити. Приведення типів: це техніка для перетворення одного типу даних в інший. Ми виконуємо приведення цілого числа N і зберігаємо його значення у змінній типу даних char c. Надрукувати символ: нарешті, надрукувати символ за допомогою cout.
Нижче наведено програму C++ для перетворення int у char за допомогою приведення типів:
C++
// C++ program to convert> // int to char using typecasting> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 97;> > cout < <> char> (N);> > return> 0;> }> |
Вихід
a
Часова складність – O(1), а допоміжний простір – O(1).
Спосіб 2:
- Оголошення та ініціалізація: для початку ми оголосимо та ініціалізуємо наше ціле число значенням, яке потрібно перетворити. Приведення типу: оголосите іншу змінну як символ c і призначте значення N символу C. Надрукуйте символ: нарешті, надрукуйте символ за допомогою cout.
Нижче наведено програму C++ для перетворення int у char за допомогою приведення типів:
C++
// C++ program to convert> // int to char using typecasting> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 65;> > char> c = N;> > cout < < c;> > return> 0;> }> |
Вихід
A
2. Використання static_cast
Ціле число можна перетворити на символ за допомогою функції static_cast. Нижче наведено програму C++ для перетворення int у char за допомогою static_cast:
C++
// C++ program to convert> // int to char using static_cast> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 65;> > > char> c => static_cast> <> char> >(N);> > cout < < c;> > return> 0;> }> |
Вихід
A
3. Використання sprintf()
Виділіть простір для однієї змінної int, яка буде перетворена в буфер символів. Варто зазначити, що в наступному прикладі визначено максимальну довжину Max_Digits для цілочисельних даних. Оскільки функція sprintf надсилає рядок char, що закінчується 0 байтами, до місця призначення, ми додаємо sizeof(char), щоб отримати довжину буфера char. У результаті ми повинні переконатися, що для цього буфера виділено достатньо місця.
Нижче наведено програму C++ для перетворення int у char за допомогою sprintf():
C++
// C++ program to convert> // int to char using sprintf()> #include> using> namespace> std;> #define Max_Digits 10> // Driver code> int> main()> {> > int> N = 1234;> > char> n_char[Max_Digits +> > sizeof> (> char> )];> > std::> sprintf> (n_char,> > '%d'> , N);> > std::> printf> (> 'n_char: %s
'> ,> > n_char);> > return> 0;> }> |
Вихід
n_char: 1234
4. Використання to_string() і c_str()
Функція to string() перетворює одну цілочисельну змінну або інші типи даних у рядок. Метод c_str() перетворює рядок на масив символів, що закінчується нульовим символом.
Нижче наведено програму C++ для перетворення int у char за допомогою to_string() і c_str():
C++
// C++ program to convert> // int to char using sto_string()> // and c_str()> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 1234;> > string t = to_string(N);> > char> const> *n_char = t.c_str();> > printf> (> 'n_char: %s
'> ,> > n_char);> > return> 0;> }> |
Вихід
n_char: 1234
5. Використання stringstream
Рядковий потік з’єднує рядковий об’єкт із потоком, дозволяючи читати з нього так, ніби це потік (як cin). Stringstream вимагає включення файлу заголовка sstream. Клас stringstream стає в нагоді під час обробки вхідних даних.
Нижче наведено програму C++ для перетворення int у char за допомогою stringstream:
C++
// C++ program to convert> // int to char using> // stringstream> #include> using> namespace> std;> #include> // Driver code> int> main()> {> > int> N = 1234;> > std::stringstream t;> > t < < N;> > char> const> *n_char => > t.str().c_str();> > printf> (> 'n_char: %s
'> ,> > n_char);;> > return> 0;> }> |
Вихід
n_char: 1234
Метод: Перетворення значення int на char шляхом додавання 0
C++
// C++ program to convert> // int to char using typecasting by adding zero> #include> using> namespace> std;> //Driver code> int> main()> {> > int> number = 65;> > char> charvalue = (> char> (number)+0);> > cout < < charvalue;> > return> 0;> }> |
Вихід
A
Часова складність: O(1).
Допоміжні приміщення: O(1).
Підхід: підхід зміщення значення ASCII
Кроки:
- Візьміть ціле число від користувача.
- Перевірте, чи введене значення відповідає дійсному символу в таблиці ASCII, перевіривши діапазон введеного значення.
- Якщо вхідне значення відповідає дійсному символу, тоді до цілого значення додайте відповідне значення зсуву «0» або «A» (залежно від введення), щоб отримати відповідне значення символу.
- Виведіть відповідний символ.
C++
#include> using> namespace> std;> int> main() {> > int> num = 65;> > cout < <> 'Enter an integer: '> < < num < < endl;> > > char> ch;> > if> (num>= 65 && номер <= 90) {> > ch = num;> > }> else> if> (num>= 97 && номер <= 122) {> > ch = num;> > }> else> {> > cout < <> 'Invalid input.'> < < endl;> > return> 0;> > }> > > cout < <> 'The corresponding character is: '> < < ch < < endl;> > num = 97;> > cout < <> 'Enter an integer: '> < < num < < endl;> > if> (num>= 65 && номер <= 90) {> > ch = num;> > }> else> if> (num>= 97 && номер <= 122) {> > ch = num;> > }> else> {> > cout < <> 'Invalid input.'> < < endl;> > return> 0;> > }> > cout < <> 'The corresponding character is: '> < < ch < < endl;> > return> 0;> }> |
Вихід
Enter an integer: 65 The corresponding character is: A Enter an integer: 97 The corresponding character is: a
Часова складність: O(1), оскільки циклів немає.
Допоміжний простір: O(1), оскільки ми використовуємо лише односимвольну змінну для збереження результату.
Назва підходу: арифметичне перетворення
Кроки:
- Обчислити кількість цифр у вхідному значенні int.
- Перебирайте цифри справа наліво, вилучаючи кожну цифру та додаючи значення ASCII «0», щоб перетворити її на символ.
- Збережіть отриманий масив символів у наданому буфері виводу.
C++
#include> #include> using> namespace> std;> void> int_to_char(> int> num,> char> *result) {> > int> temp = num;> > int> len = 0;> > while> (temp>0) {> > len++;> > temp /= 10;> > }> > for> (> int> i = len - 1; i>= 0; i--) {> > result[i] = num % 10 +> '0'> ;> > num /= 10;> > }> > result[len] => ' '> ;> }> int> main() {> > int> num = 12345;> > char> result[100];> > int_to_char(num, result);> > cout < < result < < endl;> > return> 0;> }> |
Вихід
12345
Часова складність : O(log10 n), де n – вхідне int значення.
Складність простору: O(log10 n), де n — вхідне значення int, через необхідність зберігати вихідний масив char.