logo

Program C++ do konwersji int na char

W tym artykule dowiemy się, jak przekonwertować int na char w C++. W przypadku tej konwersji istnieje 5 następujących sposobów:

    Korzystanie z rzutowania typów. Używanie static_cast. Używanie sprintf(). Używanie to_string() i c_str(). Korzystanie ze strumienia string.

Zacznijmy od szczegółowego omówienia każdej z tych metod.



Przykłady:

Wejście: N = 65
Wyjście: A

Wejście: N = 97
Wyjście: A



1. Korzystanie z rzutowania

Metoda 1:

    Deklaracja i inicjalizacja: Na początek zadeklarujemy i zainicjujemy naszą liczbę całkowitą wartością, która ma zostać przekonwertowana. Typecasting: Jest to technika przekształcania jednego typu danych w inny. Wpisujemy liczbę całkowitą N i zapisujemy jej wartość w zmiennej typu char c. Wydrukuj znak: Na koniec wydrukuj znak za pomocą cout.

Poniżej znajduje się program C++ do konwersji int na znak przy użyciu rzutowania typów:

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

>

>

Wyjście

a>

Złożoność czasowa to O(1), a przestrzeń pomocnicza to O(1).

Metoda 2:

    Deklaracja i inicjalizacja: Na początek zadeklarujemy i zainicjujemy naszą liczbę całkowitą wartością, która ma zostać przekonwertowana. Typecasting: Zadeklaruj inną zmienną jako znak c i przypisz wartość N do C. Wydrukuj znak: Na koniec wydrukuj znak za pomocą cout.

Poniżej znajduje się program C++ do konwersji int na znak przy użyciu rzutowania typów:

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

milion w liczbach
>

>

Wyjście

A>

2. Używanie static_cast

Liczbę całkowitą można przekonwertować na znak za pomocą funkcji static_cast. Poniżej znajduje się program C++ do konwersji int na char przy użyciu 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;> }>

>

>

Wyjście

A>

3. Korzystanie ze sprintf()

Przydziel miejsce na pojedynczą zmienną int, która zostanie przekonwertowana na bufor znaków. Warto zauważyć, że poniższy przykład definiuje maksymalną długość Max_Digits dla danych całkowitych. Ponieważ funkcja sprintf wysyła do miejsca docelowego ciąg znaków kończący się 0 bajtami, dodajemy sizeof(char), aby uzyskać długość bufora znaków. W rezultacie musimy zapewnić wystarczającą ilość miejsca na ten bufor.

Poniżej znajduje się program C++ do konwersji int na char za 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;> }>

>

błąd semantyczny

>

Wyjście

n_char: 1234>

4. Korzystanie z to_string() i c_str()

Funkcja to string() przekształca pojedynczą zmienną całkowitą lub inne typy danych w ciąg znaków. Metoda c_str() konwertuje ciąg znaków na tablicę znaków zakończoną znakiem null.

Poniżej znajduje się program C++ do konwersji int na char za pomocą to_string() i 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;> }>

>

>

Wyjście

n_char: 1234>

5. Korzystanie ze strumienia stringów

Stringstream łączy obiekt string ze strumieniem, umożliwiając odczyt z niego tak, jakby był strumieniem (jak cin). Stringstream wymaga dołączenia pliku nagłówkowego sstream. Klasa stringstream przydaje się podczas przetwarzania danych wejściowych.

Poniżej znajduje się program C++ do konwersji int na char za 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;> }>

>

>

Wyjście

n_char: 1234>

Metoda: Konwersja wartości int na char poprzez dodanie 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;> }>

>

operatory Javy

>

Wyjście

A>

Złożoność czasowa: O(1).
Przestrzeń pomocnicza: O(1).

Podejście: podejście z przesunięciem wartości ASCII

Kroki:

  1. Pobierz od użytkownika liczbę całkowitą.
  2. Sprawdź, czy wartość wejściowa odpowiada prawidłowemu znakowi w tabeli ASCII, sprawdzając zakres wartości wejściowej.
  3. Jeśli wartość wejściowa odpowiada prawidłowemu znakowi, dodaj odpowiednią wartość przesunięcia „0” lub „A” (w zależności od wejścia) do wartości całkowitej, aby uzyskać odpowiednią wartość znaku.
  4. Wyprowadź odpowiedni znak.

C++




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

>

>

Wyjście

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

Złożoność czasowa: O(1), ponieważ nie ma w tym żadnych pętli.
Przestrzeń pomocnicza: O(1), ponieważ do przechowywania wyniku używamy tylko zmiennej jednoznakowej.

Nazwa podejścia: Konwersja arytmetyczna

Kroki:

  1. Oblicz liczbę cyfr wejściowej wartości int.
  2. Iteruj po cyfrach od prawej do lewej, wyodrębniając każdą cyfrę i dodając wartość ASCII „0”, aby przekonwertować ją na znak.
  3. Zapisz wynikową tablicę znaków w dostarczonym buforze wyjściowym.

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; ja--) {> >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;> }>

>

>

Wyjście

12345>

Złożoność czasowa : O(log10 n), gdzie n jest wejściową wartością typu int.
Złożoność przestrzeni: O(log10 n), gdzie n jest wejściową wartością typu int, ze względu na konieczność przechowywania wyjściowej tablicy znaków.