logo

C++ Program na konverziu int na char

V tomto článku sa naučíme, ako previesť int na char v C++. Pre túto konverziu existuje 5 nasledujúcich spôsobov:

    Použitie pretypovania. Použitie static_cast. Pomocou sprintf(). Pomocou to_string() a c_str(). Pomocou stringstream.

Začnime podrobne diskutovať o každej z týchto metód.



Príklady:

Vstup: N = 65
Výkon: A

Vstup: N = 97
Výkon: a



1. Použitie Typecasting

Metóda 1:

    Deklarácia a inicializácia: Na začiatok deklarujeme a inicializujeme naše celé číslo s hodnotou, ktorá sa má previesť. Typecasting: Je to technika na transformáciu jedného dátového typu na iný. Pretypujeme celé číslo N a jeho hodnotu uložíme do premennej dátového typu char c. Vytlačte znak: Nakoniec vytlačte znak pomocou cout.

Nižšie je uvedený program C++ na konverziu int na char pomocou pretypovania:

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;> }>

>

>

Výkon

a>

Časová zložitosť je O(1) a pomocný priestor je O(1).

Metóda 2:

    Deklarácia a inicializácia: Na začiatok deklarujeme a inicializujeme naše celé číslo s hodnotou, ktorá sa má previesť. Pretypovanie: Deklarujte ďalšiu premennú ako znak c a priraďte hodnotu N k C Vytlačte znak: Nakoniec vytlačte znak pomocou cout.

Nižšie je uvedený program C++ na konverziu int na char pomocou pretypovania:

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;> }>

hashtable java
>

>

Výkon

A>

2. Použitie static_cast

Celé číslo je možné previesť na znak pomocou funkcie static_cast. Nižšie je uvedený program C++ na konverziu int na char pomocou 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;> }>

>

>

Výkon

A>

3. Použitie sprintf()

Prideľte priestor pre jednu premennú typu int, ktorá sa skonvertuje na vyrovnávaciu pamäť znakov. Stojí za zmienku, že nasledujúci príklad definuje maximálnu dĺžku Max_Digits pre celočíselné údaje. Pretože funkcia sprintf posiela char reťazec ukončený 0 bajtmi do cieľa, pridáme sizeof(char), aby sme získali dĺžku vyrovnávacej pamäte char. V dôsledku toho musíme zabezpečiť, aby bolo pre túto vyrovnávaciu pamäť vyhradený dostatok miesta.

Nižšie je uvedený program C++ na konverziu int na char pomocou 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;> }>

>

môže android hrať gamepigeon

>

Výkon

n_char: 1234>

4. Použitie to_string() a c_str()

Funkcia to string() transformuje jednu celočíselnú premennú alebo iné dátové typy na reťazec. Metóda c_str() konvertuje reťazec na pole znakov, ktoré končí znakom null.

Nižšie je uvedený program C++ na konverziu int na char pomocou to_string() a 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;> }>

>

>

Výkon

n_char: 1234>

5. Použitie stringstream

Stringstream spája objekt typu string s prúdom, čo vám umožňuje čítať z neho, ako keby to bol prúd (ako cin). Stringstream vyžaduje zahrnutie súboru hlavičky streamu. Trieda stringstream sa hodí pri spracovaní vstupu.

Nižšie je uvedený program C++ na konverziu int na char pomocou 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;> }>

>

>

Výkon

n_char: 1234>

Metóda: Prevod hodnoty int na char pridaním 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;> }>

>

Herečka Sai Pallavi

>

Výkon

A>

Časová zložitosť: O(1).
Pomocný priestor: O(1).

Prístup: ASCII hodnota offset prístup

Kroky:

  1. Vezmite celočíselný vstup od používateľa.
  2. Skontrolujte, či vstupná hodnota zodpovedá platnému znaku v tabuľke ASCII tak, že skontrolujete rozsah vstupnej hodnoty.
  3. Ak vstupná hodnota zodpovedá platnému znaku, pridajte zodpovedajúcu hodnotu posunu „0“ alebo „A“ (v závislosti od vstupu) k celočíselnej hodnote, aby ste získali zodpovedajúcu hodnotu znaku.
  4. Zadajte príslušný znak.

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;> }>

>

>

Výkon

Enter an integer: 65 The corresponding character is: A Enter an integer: 97 The corresponding character is: a>

Časová zložitosť: O(1), pretože nie sú zahrnuté žiadne slučky.
Pomocný priestor: O(1), pretože na uloženie výsledku používame iba premennú s jedným znakom.

Názov prístupu: Aritmetická konverzia

Kroky:

  1. Vypočítajte počet číslic vo vstupnej hodnote typu int.
  2. Iterujte cez číslice sprava doľava, extrahujte každú číslicu a pridajte ASCII hodnotu „0“, aby ste ju previedli na znak.
  3. Uložte výsledné pole znakov do poskytnutej výstupnej vyrovnávacej pamäte.

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;> }>

>

>

Výkon

12345>

Časová zložitosť : O(log10 n), kde n je vstupná int hodnota.
Zložitosť priestoru: O(log10 n), kde n je vstupná int hodnota, kvôli potrebe uložiť pole výstupných znakov.