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: AVnos: 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;> }> |
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:
- Uporabnik vnese celo število.
- Preverite, ali vhodna vrednost ustreza veljavnemu znaku v tabeli ASCII, tako da preverite obseg vnesene vrednosti.
- Če vhodna vrednost ustreza veljavnemu znaku, dodajte ustrezno vrednost odmika '0' ali 'A' (odvisno od vnosa) vrednosti celega števila, da dobite ustrezno vrednost znaka.
- 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:
- Izračunajte število števk v vhodni int vrednosti.
- Ponavljajte števke od desne proti levi, izvlecite vsako števko in dodajte vrednost ASCII '0', da jo pretvorite v znak.
- 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;> }> |
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.