In dit artikel leren we hoe we int naar char kunnen converteren in C++. Voor deze conversie zijn er 5 manieren:
- Gebruik maken van typecasting. Met behulp van static_cast. Sprintf() gebruiken. Gebruik to_string() en c_str(). Stringstream gebruiken.
Laten we beginnen met het in detail bespreken van elk van deze methoden.
Voorbeelden:
Invoer: N = 65
Uitgang: AInvoer: N = 97
Uitgang: A
1. Typecasting gebruiken
Methode 1:
- Declaratie en initialisatie: Om te beginnen zullen we ons gehele getal declareren en initialiseren met de te converteren waarde. Typecasting: Het is een techniek om het ene gegevenstype in het andere te transformeren. We typeren het gehele getal N en slaan de waarde ervan op in het gegevenstype char variabele c. Druk het karakter af: Druk ten slotte het karakter af met behulp van cout.
Hieronder staat het C++-programma om int naar char te converteren met behulp van typecasting:
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;> }> |
>
>Uitvoer
a>
De tijdscomplexiteit is O(1) en een hulpruimte is O(1).
Methode 2:
- Declaratie en initialisatie: Om te beginnen zullen we ons gehele getal declareren en initialiseren met de te converteren waarde. Typecasting: Declareer een andere variabele als teken c en wijs de waarde van N toe aan de C. Druk het teken af: Druk ten slotte het teken af met behulp van cout.
Hieronder staat het C++-programma om int naar char te converteren met behulp van typecasting:
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;> }> |
>
>
wat zijn selectors in cssUitvoer
A>
2. Statische_cast gebruiken
Het gehele getal kan worden geconverteerd naar een teken met behulp van de static_cast-functie. Hieronder staat het C++-programma om int naar char te converteren met behulp van 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;> }> |
>
>Uitvoer
A>
3. Sprintf() gebruiken
Maak ruimte vrij voor een enkele int-variabele die wordt omgezet in een char-buffer. Het is vermeldenswaard dat het volgende voorbeeld de maximale lengte Max_Digits voor gehele gegevens definieert. Omdat de sprintf-functie een char-string die eindigt met 0 bytes naar de bestemming stuurt, voegen we sizeof(char) toe om de lengte van de char-buffer te krijgen. Daarom moeten we ervoor zorgen dat er voldoende ruimte wordt gereserveerd voor deze buffer.
Hieronder staat het C++-programma om int naar char te converteren met behulp van 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;> }> |
>
>Uitvoer
n_char: 1234>
4. To_string() en c_str() gebruiken
De functie to string() transformeert een enkele integer-variabele of andere gegevenstypen in een string. De methode c_str() converteert een tekenreeks naar een array van tekens, eindigend met een null-teken.
Hieronder staat het C++-programma om int naar char te converteren met behulp van to_string() en 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;> }> |
>
>Uitvoer
n_char: 1234>
5. Stringstream gebruiken
Een stringstream verbindt een stringobject met een stream, waardoor je ervan kunt lezen alsof het een stream is (zoals cin). Stringstream vereist de opname van het sstream-headerbestand. De stringstream-klasse is handig bij het verwerken van invoer.
Hieronder staat het C++-programma om int naar char te converteren met behulp van 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;> }> |
>
>Uitvoer
n_char: 1234>
Methode: Int-waarde converteren naar char door 0 toe te voegen
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;> }> |
>
>Uitvoer
A>
Tijdcomplexiteit: O(1).
Hulpruimte: O(1).
Benadering: ASCII-waarde-offsetbenadering
Stappen:
- Neem een gehele invoer van de gebruiker.
- Controleer of de invoerwaarde overeenkomt met een geldig teken in de ASCII-tabel door het bereik van de invoerwaarde te controleren.
- Als de invoerwaarde overeenkomt met een geldig teken, voeg dan de overeenkomstige offsetwaarde ‘0’ of ‘A’ (afhankelijk van de invoer) toe aan de gehele waarde om de overeenkomstige tekenwaarde te krijgen.
- Voer het overeenkomstige teken uit.
C++
#include> using> namespace> std;> int> main() {> >int> num = 65;> >cout <<>'Enter an integer: '> << num << endl;> > >char> ch;> >if>(num>= 65 && aantal<= 90) {> >ch = num;> >}>else> if>(num>= 97 && getal<= 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 && aantal<= 90) {> >ch = num;> >}>else> if>(num>= 97 && getal<= 122) {> >ch = num;> >}>else> {> >cout <<>'Invalid input.'> << endl;> >return> 0;> >}> >cout <<>'The corresponding character is: '> << ch << endl;> >return> 0;> }> |
>
>Uitvoer
Enter an integer: 65 The corresponding character is: A Enter an integer: 97 The corresponding character is: a>
Tijdcomplexiteit: O(1), omdat er geen lussen bij betrokken zijn.
Hulpruimte: O(1), omdat we slechts één tekenvariabele gebruiken om het resultaat op te slaan.
Benadernaam: rekenkundige conversie
Stappen:
- Bereken het aantal cijfers in de ingevoerde int-waarde.
- Doorloop de cijfers van rechts naar links, extraheer elk cijfer en voeg de ASCII-waarde ‘0’ toe om het naar een teken te converteren.
- Sla de resulterende char-array op in de meegeleverde uitvoerbuffer.
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; ik--) {> >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;> }> |
>
>Uitvoer
12345>
Tijdcomplexiteit : O(log10 n), waarbij n de int-invoerwaarde is.
Ruimtecomplexiteit: O(log10 n), waarbij n de invoer-int-waarde is, vanwege de noodzaak om de uitvoer-char-array op te slaan.