C++ Program pro převod int na char

V tomto článku se naučíme, jak převést int na char v C++. Pro tento převod existuje 5 následujících způsobů:

    Použití přetypování. Pomocí static_cast. Pomocí sprintf(). Použití to_string() a c_str(). Pomocí stringstream.

Začněme podrobně probrat každou z těchto metod.

Příklady:

Vstup: N = 65
Výstup: A

Vstup: N = 97
Výstup: A

1. Použití Typecasting

Metoda 1:

    Deklarace a inicializace: Nejprve deklarujeme a inicializujeme naše celé číslo s hodnotou, která má být převedena. Typecasting: Je to technika pro transformaci jednoho datového typu na jiný. Typujeme celé číslo N a ukládáme jeho hodnotu do proměnné c datového typu char. Tisk znaku: Nakonec znak vytiskněte pomocí cout.

Níže je uveden program C++ pro převod int na char pomocí přetypování:

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

Výstup

a 

Časová složitost je O(1) a pomocný prostor je O(1).

Metoda 2:

    Deklarace a inicializace: Nejprve deklarujeme a inicializujeme naše celé číslo s hodnotou, která má být převedena. Přetypování: Deklarujte jinou proměnnou jako znak c a přiřaďte hodnotu N k C Vytiskněte znak: Nakonec znak vytiskněte pomocí cout.

Níže je uveden program C++ pro převod int na char pomocí přetypování:

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

Výstup

A 

2. Použití static_cast

Celé číslo lze převést na znak pomocí funkce static_cast. Níže je uveden program C++ pro převod int na char pomocí 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;> }>

Výstup

A 

3. Použití sprintf()

Přidělte prostor pro jednu proměnnou int, která bude převedena na vyrovnávací paměť znaků. Stojí za zmínku, že následující příklad definuje maximální délku Max_Digits pro celočíselná data. Protože funkce sprintf posílá char řetězec zakončený 0 bajty do cíle, přidáme sizeof(char), abychom získali délku char bufferu. V důsledku toho musíme zajistit, aby bylo pro tento buffer vyhrazen dostatek místa.

Níže je uveden program C++ pro převod int na char pomocí 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;> }>

Výstup

n_char: 1234 

4. Použití to_string() a c_str()

Funkce to string() transformuje jednu celočíselnou proměnnou nebo jiné datové typy na řetězec. Metoda c_str() převede řetězec na pole znaků zakončených znakem null.

Níže je uveden program C++ pro převod int na char pomocí to_string() a 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;> }>

Výstup

n_char: 1234 

5. Použití stringstream

Stringstream spojuje objekt typu string s proudem a umožňuje vám z něj číst, jako by to byl proud (jako cin). Stringstream vyžaduje zahrnutí souboru záhlaví streamu. Třída stringstream se hodí při zpracování vstupu.

Níže je uveden program C++ pro převod int na char pomocí 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;> }>

Výstup

n_char: 1234 

Metoda: Převod hodnoty int na char přidáním 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;> }>

Výstup

A 

Časová složitost: O(1).
Pomocný prostor: O(1).

Přístup: ASCII hodnota offset přístup

kroky:

  1. Vezměte celočíselný vstup od uživatele.
  2. Zkontrolujte, zda vstupní hodnota odpovídá platnému znaku v tabulce ASCII kontrolou rozsahu vstupní hodnoty.
  3. Pokud vstupní hodnota odpovídá platnému znaku, přidejte odpovídající hodnotu offsetu „0“ nebo „A“ (v závislosti na vstupu) k hodnotě celého čísla, abyste získali odpovídající hodnotu znaku.
  4. Zadejte odpovídající znak.

C++




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

Výstup

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

Časová náročnost: O(1), protože nejsou zapojeny žádné smyčky.
Pomocný prostor: O(1), protože k uložení výsledku používáme pouze proměnnou s jedním znakem.

Název přístupu: Aritmetický převod

kroky:

  1. Vypočítejte počet číslic ve vstupní hodnotě int.
  2. Procházejte číslice zprava doleva, extrahujte každou číslici a přidejte ASCII hodnotu „0“, abyste ji převedli na znak.
  3. Uložte výsledné pole znaků do poskytnuté výstupní vyrovnávací paměti.

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

Výstup

12345 

Časová složitost : O(log10 n), kde n je vstupní int hodnota.
Složitost prostoru: O(log10 n), kde n je vstupní int hodnota, kvůli nutnosti uložit pole výstupních znaků.