Ciao a tutti, ho una variabile che contiene un valore numerico il quale devo scomporre in singole cifre, ad esempio la variabile X contiene il numero 192, devo recuperare le cifre in modo da ottenere 3 cifre distinte quindi 1 - 9 - 2.
Ciao a tutti, ho una variabile che contiene un valore numerico il quale devo scomporre in singole cifre, ad esempio la variabile X contiene il numero 192, devo recuperare le cifre in modo da ottenere 3 cifre distinte quindi 1 - 9 - 2.
Powered By:
AMD XP2800+; Asus A7N8X; Ram 1Gb DDR400; Vga GeForce4 FX5600 128Mb; HD MAXTOR 300Gb SATA
OS:
Linux Mandriva 2006
Windows XP Pofessional
X[0] 1
X[1] 9
X[2] 2
è lo stesso con una variabile che incremento?
in pratica in un ciclo for ho questo
tempo++
posso scomporre la variabile tempo?
Powered By:
AMD XP2800+; Asus A7N8X; Ram 1Gb DDR400; Vga GeForce4 FX5600 128Mb; HD MAXTOR 300Gb SATA
OS:
Linux Mandriva 2006
Windows XP Pofessional
codice:#include <stdio.h> char * lame_strtoi (int, int); int main () { int x = 1024; char * s; s = lame_strtoi (x, 5); fprintf (stdout, "%c - %c - %c - %c \n", * s, * (s + 1), * (s + 2), * (s + 3)); free (s); return (0); } char * lame_strtoi (int a, int n) { char * p = (char *) malloc (n); sprintf (p, "%d", a); return (p); }
michele
michele.facchin@virgilio.it
Server:irc.azzurra.org | /join #c
grazie per le risposte a che se devo dire che mi aspettavo qualcosa come una semplice istruzione left o mid ma non esistono in c?
Powered By:
AMD XP2800+; Asus A7N8X; Ram 1Gb DDR400; Vga GeForce4 FX5600 128Mb; HD MAXTOR 300Gb SATA
OS:
Linux Mandriva 2006
Windows XP Pofessional
scusate ma non riesco a fare sta cosa che in teoria dovrebbe essere semplice, purtroppo non sono espertissimo di C.
allora io ho una cosa del genere:
while(PORTA == 1)
{
DelayMs(10);
tempo++;
}
ora supponiamo che a fine ciclo tempo abbia come valore 192, non esiste in c un comando come left o mid per recuperare singolarmente le cifre 1 9 e 2?
Powered By:
AMD XP2800+; Asus A7N8X; Ram 1Gb DDR400; Vga GeForce4 FX5600 128Mb; HD MAXTOR 300Gb SATA
OS:
Linux Mandriva 2006
Windows XP Pofessional
Scusate se riUPpo ma devo risolvere qesto problema
Powered By:
AMD XP2800+; Asus A7N8X; Ram 1Gb DDR400; Vga GeForce4 FX5600 128Mb; HD MAXTOR 300Gb SATA
OS:
Linux Mandriva 2006
Windows XP Pofessional
perchè non usi la funzione itoa?
oppure sprintf?
codice:int i = 192; char a[20]; sprintf(a, "%d", i); printf("%s\n",a); itoa(i, a, 10); printf("%s\n",a);
cè un modo molto più semplice...utilizzando il mod (%)
int x,a,b,c;
x=192;
a=x/100;
b=(x%100)/10;
c=(x%10);
printf("%d %d %d",a,b,c);
Alla fine...
a=1
b=9
c=2
cn 3 semplici operazioni
Ma non ha alcuna utilità pratica.....Originariamente inviato da Skynet83
cè un modo molto più semplice...utilizzando il mod (%)
int x,a,b,c;
x=192;
a=x/100;
b=(x%100)/10;
c=(x%10);
printf("%d %d %d",a,b,c);
Alla fine...
a=1
b=9
c=2
cn 3 semplici operazioni