Go Down

Topic: int to char conversion (Read 388 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy