C++-ohjelma Int to char -muunnos

Tässä artikkelissa opimme muuttamaan int chariksi C++:ssa. Tälle muunnokselle on 5 tapaa seuraavasti:

    Typecastingin käyttö. Static_castin käyttö. Käyttämällä sprintf(). Käytä to_string() ja c_str(). Stringstreamin käyttö.

Aloitetaan keskustelemalla jokaisesta näistä menetelmistä yksityiskohtaisesti.

Esimerkkejä:

Syöte: N = 65
Lähtö: A

Syöte: N = 97
Lähtö: a

1. Typecastingin käyttäminen

Tapa 1:

    Ilmoitus ja alustus: Aluksi ilmoitamme ja alustamme kokonaislukumme muunnettavalla arvolla. Typecasting: Se on tekniikka tietotyypin muuntamiseksi toiseksi. Kirjoitamme kokonaislukua N ja tallennamme sen arvon tietotyypin char muuttujaan c. Tulosta merkki: Tulosta lopuksi merkki käyttämällä cout.

Alla on C++-ohjelma, joka muuntaa int chariksi typecastingin avulla:

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

Lähtö

a 

Aikamonimutkaisuus on O(1) ja apuavaruus on O(1).

Tapa 2:

    Ilmoitus ja alustus: Aluksi ilmoitamme ja alustamme kokonaislukumme muunnettavalla arvolla. Typecasting: Määritä toinen muuttuja merkiksi c ja määritä C:lle N:n arvo Tulosta merkki: Tulosta lopuksi merkki käyttämällä cout.

Alla on C++-ohjelma, joka muuntaa int chariksi typecastingin avulla:

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

Lähtö

A 

2. Static_castin käyttäminen

Kokonaisluku voidaan muuntaa merkiksi käyttämällä static_cast-funktiota. Alla on C++-ohjelma, jolla int muunnetaan chariksi käyttämällä static_castia:

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

Lähtö

A 

3. Sprintf()

Varaa tilaa yhdelle int-muuttujalle, joka muunnetaan merkkipuskuriksi. On syytä huomata, että seuraava esimerkki määrittelee maksimipituuden Max_Digits kokonaislukudatalle. Koska sprintf-funktio lähettää 0 tavuun päättyvän merkkijonon määränpäähän, lisäämme sizeof(char) saadaksemme char-puskurin pituuden. Tämän seurauksena meidän on varmistettava, että tälle puskurille on varattu riittävästi tilaa.

Alla on C++-ohjelma, joka muuntaa int chariksi käyttämällä sprintf(:tä):

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

Lähtö

n_char: 1234 

4. Käytä komentoja to_string() ja c_str()

To string()-funktio muuntaa yksittäisen kokonaislukumuuttujan tai muun tietotyypin merkkijonoksi. c_str()-menetelmä muuntaa merkkijonon merkkijonoksi, joka päättyy tyhjään merkkiin.

Alla on C++-ohjelma, joka muuntaa int chariksi käyttämällä to_string() ja 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;> }>

Lähtö

n_char: 1234 

5. Stringstreamin käyttäminen

Merkkijonovirta yhdistää merkkijonoobjektin virtaan, jolloin voit lukea siitä ikään kuin se olisi virta (kuten cin). Stringstream edellyttää stringin otsikkotiedoston sisällyttämistä. Stringstream-luokka on kätevä syötettä käsiteltäessä.

Alla on C++-ohjelma, jolla int muunnetaan chariksi merkkijonovirran avulla:

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

Lähtö

n_char: 1234 

Menetelmä: Muunna int-arvo chariksi lisäämällä 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;> }>

Lähtö

A 

Aika monimutkaisuus: O(1).
Aputila: O(1).

Lähestymistapa: ASCII-arvopoikkeamamenetelmä

Askeleet:

  1. Ota käyttäjältä kokonaisluku.
  2. Tarkista, vastaako syötearvo ASCII-taulukon kelvollista merkkiä tarkistamalla syöttöarvon alue.
  3. Jos syötearvo vastaa kelvollista merkkiä, lisää vastaava offset-arvo '0' tai 'A' (syötteestä riippuen) kokonaislukuarvoon saadaksesi vastaavan merkin arvon.
  4. Anna vastaava merkki.

C++




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

Lähtö

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

Aika monimutkaisuus: O(1), koska siinä ei ole silmukoita.
Aputila: O(1), koska käytämme vain yhden merkin muuttujaa tuloksen tallentamiseen.

Lähestymistavan nimi: Aritmeettinen muunnos

Askeleet:

  1. Laske syötetyn int-arvon numeroiden lukumäärä.
  2. Iteroi numeroita oikealta vasemmalle, poimi jokainen numero ja lisää ASCII-arvo '0' muuntaaksesi sen merkiksi.
  3. Tallenna tuloksena oleva char-taulukko toimitettuun tulostuspuskuriin.

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

Lähtö

12345 

Aika monimutkaisuus : O(log10 n), missä n on syötetyn int-arvo.
Avaruuden monimutkaisuus: O(log10 n), jossa n on syötetyn int-arvo, koska tulostettujen char-taulukoiden tallennus on tarpeen.