C++ Program For int til char-konvertering
I denne artikkelen vil vi lære hvordan du konverterer int til char i C++. For denne konverteringen er det 5 måter som følger:
- Bruker typecasting. Bruker static_cast. Bruker sprintf(). Bruke to_string() og c_str(). Bruker stringstream.
La oss starte med å diskutere hver av disse metodene i detalj.
Eksempler:
Inndata: N = 65
Produksjon: ENInndata: N = 97
Produksjon: en
1. Bruke Typecasting
Metode 1:
- Erklæring og initialisering: Til å begynne med vil vi deklarere og initialisere vårt heltall med verdien som skal konverteres. Typecasting: Det er en teknikk for å transformere en datatype til en annen. Vi typecaster heltall N og lagrer verdien i datatypen char-variabel c. Skriv ut tegnet: Skriv til slutt ut tegnet med cout.
Nedenfor er C++-programmet for å konvertere int til char ved hjelp 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;> }> |
Produksjon
a
Tidskompleksiteten er O(1) og et hjelperom er O(1).
Metode 2:
- Erklæring og initialisering: Til å begynne med vil vi deklarere og initialisere vårt heltall med verdien som skal konverteres. Typecasting: Deklarer en annen variabel som tegn c og tilordne verdien av N til C Skriv ut tegnet: Skriv til slutt ut tegnet med cout.
Nedenfor er C++-programmet for å konvertere int til char ved hjelp 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;> }> |
Produksjon
A
2. Bruke static_cast
Heltallet kan konverteres til et tegn ved å bruke static_cast-funksjonen. Nedenfor er C++-programmet for å konvertere int til char ved hjelp av 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;> }> |
Produksjon
A
3. Bruke sprintf()
Tildel plass for en enkelt int-variabel som vil bli konvertert til en char-buffer. Det er verdt å merke seg at følgende eksempel definerer maksimal lengde Max_Digits for heltallsdata. Fordi sprintf-funksjonen sender en char-streng som avsluttes med 0 byte til destinasjonen, legger vi til sizeof(char) for å få char-bufferlengden. Som et resultat må vi sørge for at det settes av nok plass til denne bufferen.
Nedenfor er C++-programmet for å konvertere int til char ved å bruke 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;> }> |
Produksjon
n_char: 1234
4. Bruk to_string() og c_str()
to string()-funksjonen transformerer en enkelt heltallsvariabel eller andre datatyper til en streng. c_str()-metoden konverterer en streng til en rekke tegn, og avsluttes med et nulltegn.
Nedenfor er C++-programmet for å konvertere int til char ved å bruke to_string() og 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;> }> |
Produksjon
n_char: 1234
5. Bruke stringstream
En strengstrøm kobler et strengobjekt til en strøm, slik at du kan lese fra det som om det var en strøm (som cin). Stringstream krever inkludering av sstream-headerfilen. Stringstream-klassen kommer godt med når du behandler inndata.
Nedenfor er C++-programmet for å konvertere int til char ved hjelp av 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;> }> |
Produksjon
n_char: 1234
Metode: Konverter int-verdi til char ved å legge til 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;> }> |
Produksjon
A
Tidskompleksitet: O(1).
Ekstra plass: O(1).
Tilnærming: ASCII verdi offset tilnærming
Trinn:
- Ta et heltall fra brukeren.
- Sjekk om inngangsverdien tilsvarer et gyldig tegn i ASCII-tabellen ved å sjekke rekkevidden til inngangsverdien.
- Hvis inngangsverdien tilsvarer et gyldig tegn, legger du til den tilsvarende offsetverdien '0' eller 'A' (avhengig av inndata) til heltallsverdien for å få den tilsvarende tegnverdien.
- Skriv ut det tilsvarende tegnet.
C++
#include> using> namespace> std;> int> main() {> > int> num = 65;> > cout < <> 'Enter an integer: '> < < num < < endl;> > > char> ch;> > if> (num>= 65 && tall <= 90) {> > ch = num;> > }> else> if> (num>= 97 && tall <= 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 && tall <= 90) {> > ch = num;> > }> else> if> (num>= 97 && tall <= 122) {> > ch = num;> > }> else> {> > cout < <> 'Invalid input.'> < < endl;> > return> 0;> > }> > cout < <> 'The corresponding character is: '> < < ch < < endl;> > return> 0;> }> |
Produksjon
Enter an integer: 65 The corresponding character is: A Enter an integer: 97 The corresponding character is: a
Tidskompleksitet: O(1), da det ikke er noen løkker involvert.
Hjelpeplass: O(1), siden vi bare bruker en enkelt tegnvariabel for å lagre resultatet.
Tilnærmingsnavn: Aritmetisk konvertering
Trinn:
- Beregn antall sifre i den inngående int-verdien.
- Iterer gjennom sifrene fra høyre til venstre, trekk ut hvert siffer og legg til ASCII-verdien '0' for å konvertere det til et tegn.
- Lagre den resulterende char-matrisen i den medfølgende utgangsbufferen.
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;> }> |
Produksjon
12345
Tidskompleksitet : O(log10 n), der n er inngangsverdien int.
Plass kompleksitet: O(log10 n), der n er inngangsverdien int, på grunn av behovet for å lagre utgangskarrayen.