Trasformare un intero in un carattere

di
Anonimizzato6881
il
4 risposte

Trasformare un intero in un carattere

Salve ragazzi,

devo scrivere una funzione che prende in input un numero intero e in output restituisce lo stesso numero solo che ogni cifra devimale deve essere contenuta in una locazione di un array di tipo char.

Ecco la funzione scritta da me:

void base2base10 (unsigned int n, unsigned char cifre10[], int *n_c)
{
     int i;
     *n_c=0;
      while (n > 0)
     {
           cifre10[*n_c] = n%10; 
           (*n_c)++;
           n=n/10;    
     }  
}
Funziona ma c'è un problema.. Io per leggere i numeri dall'array devo usare il codice di formato %d nella printf, invece la professoressa ci ha spiegato che dobbiamo visualizzarlo con il %c ossia come carattere..

Ho provato a modificare la funzione scrivendo:

temp=n%10
cifre10[*n_c] = (char) temp;
usando in pratica il typecasting ma mi da lo stesso risultato..

Come posso risolvere questo problema? Grazie per eventuali consigli..

4 Risposte

  • Re: Trasformare un intero in un carattere

    
    for(i = 0; i < n_c; i++)
       printf("%c ",cifre10[i] + '0');
    
  • Re: Trasformare un intero in un carattere

    In pratica cosa succede? scusa se ti rompo ma vorrei capire il funzionamento..
  • Re: Trasformare un intero in un carattere

    Prendi la tabella ascii e lo capisci A un intero da 0 a 9 se li aggiungi il valore numerico del carattere '0' (che è il 48) avrai il carattere per il numero stesso. Cioè
    
    0 + '0' = 0 + 48 = 48 = '0'
    1 + '0' = 1 + 48 = 49 = '1'
    2 + '0' = 2 + 48 = 50 = '2'
    .....
    9 + '0' = 9 + 48 = 57 = '9'
    
  • Re: Trasformare un intero in un carattere

    Ho capito! grande!! grazie mille!!!
Devi accedere o registrarti per scrivere nel forum
4 risposte