Programma C++ per la conversione da int a char
In questo articolo impareremo come convertire int in char in C++. Per questa conversione, ci sono 5 modi come segue:
- Utilizzando il typecasting. Utilizzando static_cast. Utilizzando sprintf(). Utilizzando to_string() e c_str(). Utilizzando stringstream.
Iniziamo discutendo ciascuno di questi metodi in dettaglio.
Esempi:
Ingresso: N = 65
Produzione: UNIngresso: N = 97
Produzione: UN
1. Utilizzo del typecasting
Metodo 1:
- Dichiarazione e inizializzazione: per iniziare, dichiareremo e inizializzeremo il nostro numero intero con il valore da convertire. Typecasting: è una tecnica per trasformare un tipo di dati in un altro. Stiamo convertendo l'intero N e salvando il suo valore nella variabile c del tipo di dati char. Stampa il carattere: infine, stampa il carattere usando cout.
Di seguito è riportato il programma C++ per convertire int in char utilizzando il 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;> }> |
Produzione
a
La complessità temporale è O(1) e uno spazio ausiliario è O(1).
Metodo 2:
- Dichiarazione e inizializzazione: per iniziare, dichiareremo e inizializzeremo il nostro numero intero con il valore da convertire. Typecasting: dichiara un'altra variabile come carattere c e assegna il valore di N alla C Stampa il carattere: infine, stampa il carattere usando cout.
Di seguito è riportato il programma C++ per convertire int in char utilizzando il 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;> }> |
Produzione
A
2. Utilizzando static_cast
Il numero intero può essere convertito in un carattere utilizzando la funzione static_cast. Di seguito è riportato il programma C++ per convertire int in char utilizzando 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;> }> |
Produzione
A
3. Utilizzo di sprintf()
Assegna spazio per una singola variabile int che verrà convertita in un buffer di caratteri. Vale la pena notare che l'esempio seguente definisce la lunghezza massima Max_Digits per i dati interi. Poiché la funzione sprintf invia alla destinazione una stringa di caratteri che termina con 0 byte, aggiungiamo sizeof(char) per ottenere la lunghezza del buffer di caratteri. Di conseguenza, dobbiamo garantire che sia riservato spazio sufficiente per questo buffer.
Di seguito è riportato il programma C++ per convertire int in char utilizzando 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;> }> |
Produzione
n_char: 1234
4. Utilizzo di to_string() e c_str()
La funzione to string() trasforma una singola variabile intera o altri tipi di dati in una stringa. Il metodo c_str() converte una stringa in un array di caratteri, terminando con un carattere null.
Di seguito è riportato il programma C++ per convertire int in char utilizzando to_string() e 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;> }> |
Produzione
n_char: 1234
5. Utilizzo di stringstream
Uno stringstream collega un oggetto stringa a uno stream, permettendoti di leggerlo come se fosse uno stream (come cin). Stringstream richiede l'inclusione del file di intestazione sstream. La classe stringstream è utile durante l'elaborazione dell'input.
Di seguito è riportato il programma C++ per convertire int in char utilizzando 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;> }> |
Produzione
n_char: 1234
Metodo: conversione del valore int in char aggiungendo 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;> }> |
Produzione
A
Complessità temporale: O(1).
Spazio ausiliario: O(1).
Approccio: approccio offset del valore ASCII
Passaggi:
- Prendi un input intero dall'utente.
- Controllare se il valore immesso corrisponde a un carattere valido nella tabella ASCII controllando l'intervallo del valore immesso.
- Se il valore di input corrisponde a un carattere valido, aggiungere il valore di offset corrispondente di '0' o 'A' (a seconda dell'input) al valore intero per ottenere il valore del carattere corrispondente.
- Emette il carattere corrispondente.
C++
#include> using> namespace> std;> int> main() {> > int> num = 65;> > cout < <> 'Enter an integer: '> < < num < < endl;> > > char> ch;> > if> (num>= 65 && num <= 90) {> > ch = num;> > }> else> if> (num>= 97 && num <= 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 && num <= 90) {> > ch = num;> > }> else> if> (num>= 97 && num <= 122) {> > ch = num;> > }> else> {> > cout < <> 'Invalid input.'> < < endl;> > return> 0;> > }> > cout < <> 'The corresponding character is: '> < < ch < < endl;> > return> 0;> }> |
Produzione
Enter an integer: 65 The corresponding character is: A Enter an integer: 97 The corresponding character is: a
Complessità temporale: O(1), poiché non sono coinvolti cicli.
Spazio ausiliario: O(1), poiché stiamo utilizzando solo una variabile a carattere singolo per memorizzare il risultato.
Nome dell'approccio: conversione aritmetica
Passaggi:
- Calcolare il numero di cifre nel valore int di input.
- Scorri le cifre da destra a sinistra, estraendo ciascuna cifra e aggiungendo il valore ASCII '0' per convertirlo in un carattere.
- Memorizza l'array di caratteri risultante nel buffer di output fornito.
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;> }> |
Produzione
12345
Complessità temporale : O(log10 n), dove n è il valore intero di input.
Complessità spaziale: O(log10 n), dove n è il valore intero di input, a causa della necessità di memorizzare l'array di caratteri di output.