Go Down

Topic: int to char conversion (Read 362 times) previous topic - next topic

gigi1280

Salve, ho un numero N di tre cifre (mettiamo n = 123)

dovendo utilizzare il comando putchar della libreria ht3216c.h ho bisogno di 3 variabili di tipo char con le tre cifre tipo
a=1;b=2,c=3

ovviamente il mio numero n varia nell'esecuzione pertanto i valori di a, b e c devono essere calcolati di volta in volta.
Come posso fare ciò?
Grazie
Luigi

nid69ita

#1
Oct 21, 2013, 05:47 pm Last Edit: Oct 21, 2013, 05:50 pm by nid69ita Reason: 1
Wrong section, this is only in english.

Sezione errata, c'e' la sottosezione "Italian->software"

Comunque,
Ma il valore è sempre di 3 cifre? Se non lo è conviene convertire il numero in stringa (vettore di caratteri) usando ad esempio itoa() oppure la snprintf()

Code: [Select]
int n=1234;
char buf[6];
snprintf(buf,6,"%d",n);  // ora in buf ci saranno i caratteri '1', '2', '3' e '4' nella cella 0,1,2 e 3 rispettivamente
                                            // inoltre in cella 4 c'e' il fine stringa '\0' carattere speciale

my name is IGOR, not AIGOR

odometer

#2
Oct 21, 2013, 09:10 pm Last Edit: Oct 21, 2013, 09:16 pm by odometer Reason: 1
As for language: sometimes even when people post in English, it's still hard to understand what they want.

Well, here is my way of doing this sort of thing:
Code: [Select]

int n = 123;

int leftover = n;
char hund = '0'; char tens = '0'; char ones = '0';
while (leftover >= 100) { leftover -= 100; hund++; }
while (leftover >= 10) { leftover -= 10; tens++; }
ones += leftover;
// now the digits (ASCII format) are in hund, tens, and ones
// If you prefer numbers like 99 as " 99" rather than as "099",
// then do this afterward:
if (hund=='0') {
  hund = ' ';
  if (tens=='0') tens = ' ';
}


By the way, the number 1 is not the same as the character '1'. Please see:
http://arduino.cc/en/Reference/ASCIIchart

leo72

Ti invito alla lettura delle norme d'uso di questo forum:
http://forum.arduino.cc//index.php?topic=149082.0

gigi1280

Grazie, sia per l'aiuto (ho preferito la soluzione delle centinaia , decine e unità) che per la dritta delle regole.
Thanks
Luigi

Go Up