Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-05-2008, 15:12   #1
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
[C]Convertire un intero in una stringa

Salve, esiste una funzione (tipo l'inversa di quella che cerco, cioè atoi) che mi permetti di convertira un intero in una strnga???

grazie
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 15:22   #2
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
l'itoa esiste ma non è portabile; se anziché C puoi usare C++ è meglio, basta che metti il numero in uno stringstream, altrimenti devi fare la stessa cosa ma in C tramite sprintf.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 15:31   #3
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
itoa?
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 15:42   #4
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
Quote:
Originariamente inviato da 71104 Guarda i messaggi
l'itoa esiste ma non è portabile; se anziché C puoi usare C++ è meglio, basta che metti il numero in uno stringstream, altrimenti devi fare la stessa cosa ma in C tramite sprintf.
No, posso usare solo il C. Cmq in che senso non è portabile?

cmq ho trovato questa implementazione:
Codice:
char *itoa(int n, char *s)
{
   int i, sign;

   if ((sign = n) < 0)   /* tiene traccia del segno */
      n = -n;   /* rende n positivo */
   i = 0;
   do {   /* genera le cifre nell'ordine inverso */
      s[i++] = n % 10 + '0';   /* estrae la cifra seguente */
   } while ((n /= 10) > 0);   /* elimina la cifra da n */
   if (sign < 0)
      s[i++] = '-';
   s[i] = '\\0';
   reverse(s);

   return s;
}

void reverse(char *s)
{
   int c, i, j;

   for (i = 0, j = strlen(s) - 1; i < j; i++, j--) {
      c = s[i];
      s[i] = s[j];
      s[j] = c;
   }
}
Si potrebbe usare quella invece che la semplice itoa(...): no? cosi si dovrebbe risolvere il problema
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 16:01   #5
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Vabbe' che la si poteva pure fare senza rigirare niente, ma se esiste sprintf(), usala, fai immensamente prima e non re-inventi la ruota.

ciao
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 16:16   #6
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da variabilepippo Guarda i messaggi
itoa?
già, eccola qua:
http://msdn.microsoft.com/en-us/libr...tt(VS.80).aspx
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 16:18   #7
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da gepeppe Guarda i messaggi
No, posso usare solo il C.
sprintf allora.


Quote:
Cmq in che senso non è portabile?
nel senso che non ce l'hanno tutti i compilatori.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 16:23   #8
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Più che altro nel senso che non è standard.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 16:24   #9
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
si vabbè, quello intendevo
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 16:31   #10
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da 71104 Guarda i messaggi
si vabbè, quello intendevo
Be', non dimenticare che io sono ballbreaker™.
E poi precisavo perché c'è una differenza tra le due cose, non è un difetto dei compilatori che hanno scelto di implementare o non implementare tale chiamata, è che proprio non è parte del linguaggio, quindi è solo un'estensione proprietaria.

Lo so che tu lo sai, ma preciso per eventuali lettori occasionali, che non devono fare confusione.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 18:19   #11
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
:|
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 18:23   #12
maulattu
Senior Member
 
L'Avatar di maulattu
 
Iscritto dal: Mar 2005
Città: ~
Messaggi: 740
meglio, direi di usare la snprintf

esempio:
Codice:
...
int i = 45;
char string[10];
snprintf(string, sizeof(string), "%d", i);
/* metto il finestringa */
string[sizeof(string) - 1] = 0;
...
è buona abitudine usare le funzioni robuste...
al posto di strtok è meglio usare strtok_r (è reentrant), idem per la ctime (c'è la ctime_r)...
__________________
Ciao ciao cagnolino Billy
MacMini late 2009, 2.53GHz, 4GB ram, 320GB hard disk, Snow Leopard 10.8.2 - iPod Nano 6th gen.
XBOX Live GamerTag: InsaneMau
maulattu è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 18:26   #13
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989


Che ho detto di male?
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 11:00   #14
maulattu
Senior Member
 
L'Avatar di maulattu
 
Iscritto dal: Mar 2005
Città: ~
Messaggi: 740
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi


Che ho detto di male?
la sprintf non è robusta, esempio:
Codice:
int i= 12345;
char string[2];
sprintf(string,"%d", i);
ed ecco un bella sfondata di memoria in cui vai a scrivere in un'area di memoria magari di un'altra variabile (se ti va bene) o, peggio ancora, di un altro programma (con il classico segmentation fault)
__________________
Ciao ciao cagnolino Billy
MacMini late 2009, 2.53GHz, 4GB ram, 320GB hard disk, Snow Leopard 10.8.2 - iPod Nano 6th gen.
XBOX Live GamerTag: InsaneMau
maulattu è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 11:07   #15
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
quindi alla fine meglio che mi creo io una funzione (come quella che ho postato) invece di usare itoa oppure sprintf......no?
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 11:27   #16
maulattu
Senior Member
 
L'Avatar di maulattu
 
Iscritto dal: Mar 2005
Città: ~
Messaggi: 740
Quote:
Originariamente inviato da gepeppe Guarda i messaggi
quindi alla fine meglio che mi creo io una funzione (come quella che ho postato) invece di usare itoa oppure sprintf......no?
no no,
la snprintf va più che bene!!!
ho sottolineato il fatto che la snprintf è più robusta della sprintf, tutto qui.
usala pure che funziona egregiamente

http://it.wikipedia.org/wiki/Printf#sprintf
__________________
Ciao ciao cagnolino Billy
MacMini late 2009, 2.53GHz, 4GB ram, 320GB hard disk, Snow Leopard 10.8.2 - iPod Nano 6th gen.
XBOX Live GamerTag: InsaneMau
maulattu è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 11:30   #17
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
Quote:
Originariamente inviato da maulattu Guarda i messaggi
no no,
la snprintf va più che bene!!!
ho sottolineato il fatto che la snprintf è più robusta della sprintf, tutto qui.
usala pure che funziona egregiamente

http://it.wikipedia.org/wiki/Printf#sprintf
ah ok allora grazie!
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 13:11   #18
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da maulattu Guarda i messaggi
la sprintf non è robusta, esempio:
Codice:
int i= 12345;
char string[2];
sprintf(string,"%d", i);
ed ecco un bella sfondata di memoria in cui vai a scrivere in un'area di memoria magari di un'altra variabile (se ti va bene) o, peggio ancora, di un altro programma (con il classico segmentation fault)
LOL, scusa, il mio post era rivolto a 71104, solo che mentro lo scrivevo hai postato il tuo, e così s'è creata la confusione.

All'università ci stanno facendo studiare proprio adesso degli esempi anche banali su come può essere fatto uno stack smashing usando un buffer overflow, figurati se contestavo il tuo post.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 15:14   #19
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da maulattu Guarda i messaggi
la sprintf non è robusta, esempio:
Codice:
int i= 12345;
char string[2];
sprintf(string,"%d", i);
1) come già detto esiste snprintf
2) non è che le dimensioni della rappresentazione testuale di un intero siano tanto ignote eh


Quote:
ed ecco un bella sfondata di memoria in cui vai a scrivere in un'area di memoria magari di un'altra variabile (se ti va bene) o, peggio ancora, di un altro programma (con il classico segmentation fault)
ma studiati un po' di memoria virtuale, niubboh
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 15:16   #20
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi


Che ho detto di male?
niente, è che stimo troppo la tua pignoleria
71104 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
Realme 16: il nuovo mid-range che si isp...
DAZN lancia il piano Full Mobile a 19,99...
Samsung Galaxy S26, ormai è tutto...
Smartphone sempre più cari: super...
L'ultima puntata di Falsissimo rimossa d...
NASA Perseverance ha utilizzato percorsi...
Blue Origin sospende per almeno due anni...
Stampanti, Los Angeles verso il divieto ...
Roscosmos Amur: il razzo spaziale riutil...
Robot aspirapolvere per tutte le tasche:...
Accedere alle mail di un lavoratore lice...
Amazon Haul scatenato: migliaia di prodo...
Amazon Seconda Mano rilancia: sconto ext...
Super prezzo Amazon per ECOVACS DEEBOT T...
NVIDIA Shield TV: dieci anni di aggiorna...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:52.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v