logo

Program C++ za pretvorbo int v char

V tem članku se bomo naučili, kako pretvoriti int v char v C++. Za to pretvorbo je na voljo 5 načinov:

    Uporaba pretvorbe tipov. Uporaba static_cast. Uporaba sprintf(). Uporaba to_string() in c_str(). Uporaba stringstreama.

Začnimo s podrobno razpravo o vsaki od teh metod.

Primeri:



Vnos: N = 65
Izhod: A

Vnos: N = 97
Izhod: a

1. Uporaba tipanja

1. način:

    Deklaracija in inicializacija: Za začetek bomo deklarirali in inicializirali naše celo število z vrednostjo, ki jo želimo pretvoriti. Pretvorba tipov: je tehnika za pretvorbo ene podatkovne vrste v drugo. Prevajamo celo število N in njegovo vrednost shranimo v spremenljivko podatkovnega tipa char c. Natisnite znak: Na koncu natisnite znak z uporabo cout.

Spodaj je program C++ za pretvorbo int v char s pretvorbo tipov:

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

>

>

Izhod

a>

Časovna kompleksnost je O(1), pomožni prostor pa O(1).

2. način:

    Deklaracija in inicializacija: Za začetek bomo deklarirali in inicializirali naše celo število z vrednostjo, ki jo želimo pretvoriti. Pretvorba tipov: Razglasite drugo spremenljivko kot znak c in C dodelite vrednost N. Natisnite znak: Na koncu natisnite znak z uporabo cout.

Spodaj je program C++ za pretvorbo int v char s pretvorbo tipov:

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

>

>

Izhod

A>

2. Uporaba static_cast

Celo število je mogoče pretvoriti v znak s funkcijo static_cast. Spodaj je program C++ za pretvorbo int v char z uporabo 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;> }>

>

>

Izhod

A>

3. Uporaba sprintf()

Dodelite prostor za eno spremenljivko int, ki bo pretvorjena v medpomnilnik char. Omeniti velja, da naslednji primer definira največjo dolžino Max_Digits za celoštevilske podatke. Ker funkcija sprintf na cilj pošlje niz char, ki se konča z 0 bajti, dodamo sizeof(char), da dobimo dolžino medpomnilnika char. Zato moramo zagotoviti, da je za ta medpomnilnik namenjenega dovolj prostora.

Spodaj je program C++ za pretvorbo int v char z uporabo 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;> }>

odstranite zadnji znak iz niza

>

>

Izhod

n_char: 1234>

4. Uporaba to_string() in c_str()

Funkcija to string() pretvori eno celoštevilsko spremenljivko ali druge vrste podatkov v niz. Metoda c_str() pretvori niz v niz znakov, ki se zaključi z ničelnim znakom.

Spodaj je program C++ za pretvorbo int v char z uporabo to_string() in 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;> }>

>

>

Izhod

n_char: 1234>

5. Uporaba stringstreama

Stringstream povezuje objekt niza s tokom, kar vam omogoča branje iz njega, kot da bi bil tok (kot cin). Stringstream zahteva vključitev datoteke glave sstream. Razred stringstream pride prav pri obdelavi vnosa.

Spodaj je program C++ za pretvorbo int v char z uporabo stringstreama:

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

>

>

Izhod

n_char: 1234>

Metoda: pretvorba vrednosti int v char z dodajanjem 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;> }>

>

>

Izhod

A>

Časovna zahtevnost: O(1).
Pomožni prostor: O(1).

Pristop: Pristop zamika vrednosti ASCII

Koraki:

  1. Uporabnik vnese celo število.
  2. Preverite, ali vhodna vrednost ustreza veljavnemu znaku v tabeli ASCII, tako da preverite obseg vnesene vrednosti.
  3. Če vhodna vrednost ustreza veljavnemu znaku, dodajte ustrezno vrednost odmika '0' ali 'A' (odvisno od vnosa) vrednosti celega števila, da dobite ustrezno vrednost znaka.
  4. Izpišite ustrezen znak.

C++




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

>

>

Izhod

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

Časovna zapletenost: O(1), ker ni vpletenih zank.
Pomožni prostor: O(1), saj za shranjevanje rezultata uporabljamo samo spremenljivko z enim znakom.

Ime pristopa: Aritmetična pretvorba

Koraki:

  1. Izračunajte število števk v vhodni int vrednosti.
  2. Ponavljajte števke od desne proti levi, izvlecite vsako števko in dodajte vrednost ASCII '0', da jo pretvorite v znak.
  3. Shranite nastalo matriko znakov v ponujen izhodni medpomnilnik.

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

>

vlc za prenos videoposnetkov youtube
>

Izhod

12345>

Časovna zapletenost : O(log10 n), kjer je n vhodna int vrednost.
Kompleksnost prostora: O(log10 n), kjer je n vhodna int vrednost, zaradi potrebe po shranjevanju izhodne matrike znakov.