În acest articol, vom învăța cum să convertim int în char în C++. Pentru această conversie, există 5 moduri, după cum urmează:
- Folosind tipărirea. Folosind static_cast. Folosind sprintf(). Folosind to_string() și c_str(). Folosind stringstream.
Să începem prin a discuta în detaliu fiecare dintre aceste metode.
Exemple:
Intrare: N = 65
Ieșire: AIntrare: N = 97
Ieșire: A
1. Folosind Typecasting
Metoda 1:
- Declarație și inițializare: Pentru început, vom declara și inițializa numărul întreg cu valoarea de convertit. Typecasting: este o tehnică de transformare a unui tip de date în altul. Tipificam întregul N și salvăm valoarea acestuia în variabila de tip char c. Imprimați caracterul: în sfârșit, imprimați caracterul folosind cout.
Mai jos este programul C++ pentru a converti int în char folosind tipărirea:
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;> }> |
sortare arraylist
>
>Ieșire
a>
Complexitatea timpului este O(1) iar un spațiu auxiliar este O(1).
Metoda 2:
- Declarație și inițializare: Pentru început, vom declara și inițializa numărul întreg cu valoarea de convertit. Typecasting: Declarați o altă variabilă ca caracter c și atribuiți valoarea lui N lui C Imprimați caracterul: În sfârșit, imprimați caracterul folosind cout.
Mai jos este programul C++ pentru a converti int în char folosind tipărirea:
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;> }> |
>
>Ieșire
A>
2. Folosind static_cast
Întregul poate fi convertit într-un caracter folosind funcția static_cast. Mai jos este programul C++ pentru a converti int în char folosind 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;> }> |
>
>Ieșire
A>
3. Folosind sprintf()
Alocați spațiu pentru o singură variabilă int care va fi convertită într-un tampon de caractere. Este de remarcat faptul că următorul exemplu definește lungimea maximă Max_Digits pentru datele întregi. Deoarece funcția sprintf trimite un șir de caractere care se termină cu 0 octeți către destinație, adăugăm sizeof(char) pentru a obține lungimea tamponului de caractere. Ca rezultat, trebuie să ne asigurăm că este alocat suficient spațiu pentru acest buffer.
Mai jos este programul C++ pentru a converti int în char folosind 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;> }> |
>
>Ieșire
n_char: 1234>
4. Folosind to_string() și c_str()
Funcția to string() transformă o singură variabilă întreg sau alte tipuri de date într-un șir. Metoda c_str() convertește un șir într-o matrice de caractere, care se termină cu un caracter nul.
Mai jos este programul C++ pentru a converti int în char folosind to_string() și 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;> }> |
>
>Ieșire
n_char: 1234>
5. Folosind stringstream
Un stringstream conectează un obiect string la un stream, permițându-vă să citiți din el ca și cum ar fi un stream (cum ar fi cin). Stringstream necesită includerea fișierului antet sstream. Clasa stringstream este utilă atunci când procesează intrarea.
Mai jos este programul C++ pentru a converti int în char folosind 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;> }> |
eol în piton
>
>Ieșire
n_char: 1234>
Metodă: Convertirea valorii int în char adăugând 0
C++
începe cu java
// 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;> }> |
>
>Ieșire
A>
Complexitatea timpului: O(1).
Spatiu auxiliar: O(1).
Abordare: abordare de compensare a valorii ASCII
Pași:
- Luați o intrare întreg de la utilizator.
- Verificați dacă valoarea de intrare corespunde unui caracter valid din tabelul ASCII verificând intervalul valorii de intrare.
- Dacă valoarea de intrare corespunde unui caracter valid, apoi adăugați valoarea de offset corespunzătoare de „0” sau „A” (în funcție de intrare) la valoarea întreagă pentru a obține valoarea caracterului corespunzătoare.
- Ieșiți caracterul corespunzător.
C++
#include> using> namespace> std;> int> main() {> >int> num = 65;> >cout <<>'Enter an integer: '> << num << endl;> > >char> ch;> >if>(num>= 65 && num<= 90) {> >ch = num;> >}>else> if>(num>= 97 && num<= 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 && num<= 90) {> >ch = num;> >}>else> if>(num>= 97 && num<= 122) {> >ch = num;> >}>else> {> >cout <<>'Invalid input.'> << endl;> >return> 0;> >}> >cout <<>'The corresponding character is: '> << ch << endl;> >return> 0;> }> |
>
>Ieșire
Enter an integer: 65 The corresponding character is: A Enter an integer: 97 The corresponding character is: a>
Complexitatea timpului: O(1), deoarece nu există bucle implicate.
Spațiu auxiliar: O(1), deoarece folosim doar o variabilă cu un singur caracter pentru a stoca rezultatul.
Numele abordării: Conversie aritmetică
Pași:
- Calculați numărul de cifre din valoarea int de intrare.
- Iterați prin cifre de la dreapta la stânga, extragând fiecare cifră și adăugând valoarea ASCII de „0” pentru a o converti într-un caracter.
- Stocați matricea de caractere rezultată în tamponul de ieșire furnizat.
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;> }> |
>
>Ieșire
12345>
Complexitatea timpului : O(log10 n), unde n este valoarea int de intrare.
Complexitatea spațiului: O(log10 n), unde n este valoarea int de intrare, din cauza necesității de a stoca matricea char de ieșire.