logo

C++-program för int till char-konvertering

I den här artikeln kommer vi att lära oss hur man konverterar int till char i C++. För denna konvertering finns det 5 sätt enligt följande:

    Använder typcasting. Använder static_cast. Använder sprintf(). Använda to_string() och c_str(). Använder stringstream.

Låt oss börja med att diskutera var och en av dessa metoder i detalj.



Exempel:

Inmatning: N = 65
Produktion: A

Inmatning: N = 97
Produktion: a



1. Använda Typecasting

Metod 1:

    Deklaration och initialisering: Till att börja med kommer vi att deklarera och initialisera vårt heltal med värdet som ska konverteras. Typecasting: Det är en teknik för att omvandla en datatyp till en annan. Vi typcastar heltal N och sparar dess värde i datatypen char-variabel c. Skriv ut tecknet: Skriv till sist ut tecknet med cout.

Nedan är C++-programmet för att konvertera int till char med hjälp av typecasting:

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

>

>

Produktion

a>

Tidskomplexiteten är O(1) och ett hjälprum är O(1).

Metod 2:

    Deklaration och initialisering: Till att börja med kommer vi att deklarera och initialisera vårt heltal med värdet som ska konverteras. Typecasting: Deklarera en annan variabel som tecken c och tilldela värdet på N till C Skriv ut tecknet: Skriv till sist ut tecknet med cout.

Nedan är C++-programmet för att konvertera int till char med hjälp av typecasting:

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

>

>

Produktion

A>

2. Använda static_cast

Heltalet kan konverteras till ett tecken med hjälp av static_cast-funktionen. Nedan är C++-programmet för att konvertera int till char med 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;> }>

>

>

Produktion

A>

3. Använda sprintf()

Tilldela utrymme för en enda int-variabel som kommer att konverteras till en char-buffert. Det är värt att notera att följande exempel definierar den maximala längden Max_Digits för heltalsdata. Eftersom sprintf-funktionen skickar en char-sträng som avslutas med 0 byte till destinationen, lägger vi till sizeof(char) för att få char-buffertlängden. Som ett resultat måste vi se till att tillräckligt med utrymme avsätts för denna buffert.

Nedan är C++-programmet för att konvertera int till char med sprintf():

C++




binärt träd vs bst
// 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;> }>

>

>

Produktion

n_char: 1234>

4. Använd to_string() och c_str()

Funktionen to string() omvandlar en enstaka heltalsvariabel eller andra datatyper till en sträng. Metoden c_str() konverterar en sträng till en array av tecken, som avslutas med ett nolltecken.

Nedan är programmet C++ för att konvertera int till char med to_string() och 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;> }>

>

>

Produktion

n_char: 1234>

5. Använda stringstream

En strängström kopplar ett strängobjekt till en ström, så att du kan läsa från den som om den vore en ström (som cin). Stringstream kräver inkludering av sstream-huvudfilen. Stringstream-klassen kommer väl till pass vid bearbetning av indata.

Nedan är C++-programmet för att konvertera int till char med 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;> }>

>

>

Produktion

n_char: 1234>

Metod: Konvertera int-värde till char genom att lägga till 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;> }>

>

>

Produktion

A>

Tidskomplexitet: O(1).
Extra utrymme: O(1).

Tillvägagångssätt: ASCII-värdesförskjutning

Steg:

  1. Ta ett heltalsinmatning från användaren.
  2. Kontrollera om inmatningsvärdet motsvarar ett giltigt tecken i ASCII-tabellen genom att kontrollera intervallet för inmatningsvärdet.
  3. Om inmatningsvärdet motsvarar ett giltigt tecken, lägg sedan till motsvarande offsetvärde '0' eller 'A' (beroende på indata) till heltalsvärdet för att få motsvarande teckenvärde.
  4. Mata ut motsvarande tecken.

C++




#include> using> namespace> std;> int> main() {> >int> num = 65;> >cout <<>'Enter an integer: '> << num << endl;> > >char> ch;> >if>(num>= 65 && antal<= 90) {> >ch = num;> >}>else> if>(num>= 97 && antal<= 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 && antal<= 90) {> >ch = num;> >}>else> if>(num>= 97 && antal<= 122) {> >ch = num;> >}>else> {> >cout <<>'Invalid input.'> << endl;> >return> 0;> >}> >cout <<>'The corresponding character is: '> << ch << endl;> >return> 0;> }>

>

>

Produktion

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

Tidskomplexitet: O(1), eftersom det inte finns några slingor inblandade.
Hjälputrymme: O(1), eftersom vi bara använder en enda teckenvariabel för att lagra resultatet.

Metodnamn: Aritmetisk omvandling

Steg:

  1. Beräkna antalet siffror i det inmatade int-värdet.
  2. Iterera genom siffrorna från höger till vänster, extrahera varje siffra och lägg till ASCII-värdet '0' för att konvertera det till ett tecken.
  3. Lagra den resulterande char-arrayen i den medföljande utgångsbufferten.

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

>

>

Produktion

12345>

Tidskomplexitet : O(log10 n), där n är int-värdet.
Utrymmes komplexitet: O(log10 n), där n är det ingående int-värdet, på grund av behovet av att lagra utgångs-char-arrayen.