Pages: [1]   Go Down
Author Topic: int to char conversion  (Read 322 times)
0 Members and 1 Guest are viewing this topic.
Napoli
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Luigi

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 87
Posts: 5049
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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
« Last Edit: October 21, 2013, 10:50:12 am by nid69ita » Logged

my name is IGOR, not AIGOR

Offline Offline
Full Member
***
Karma: 2
Posts: 197
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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
« Last Edit: October 21, 2013, 02:16:20 pm by odometer » Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 335
Posts: 23111
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Napoli
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Luigi

Pages: [1]   Go Up
Jump to: