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: AInmatning: 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:
- Ta ett heltalsinmatning från användaren.
- Kontrollera om inmatningsvärdet motsvarar ett giltigt tecken i ASCII-tabellen genom att kontrollera intervallet för inmatningsvärdet.
- 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.
- 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:
- Beräkna antalet siffror i det inmatade int-värdet.
- 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.
- 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.