Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Conversione Char/int e interi dentro le celle di Array
Forum - C/C++ - Conversione Char/int e interi dentro le celle di Array

Avatar
oliverissimo (Normal User)
Newbie


Messaggi: 11
Iscritto: 14/05/2010

Segnala al moderatore
Postato alle 21:01
Venerdì, 14/05/2010
Ciao a tutti!! :)

Volevo sapere se c'era un modo per convertire un numero intero allo stesso numero in carattere (chiaramente il char convertito deve stare su un array).

Esempio:

input: int i=10

output: A[1]=1 A[2]=0 (1 e 0 sono caratteri)

Questo deve valere per qualsiasi cifra che io inserisco. 8-)

Vorrei esporvi un'altra mia curiosita':

se io ho un intero, come posso mettere ogni sua cifra in una cella dell' array??

Esempio:

input: int i=10

output: A[1]=1 A[2]=0 (1 e 0 sono interi)

Grazie mille in anticipo ;)


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:37
Venerdì, 14/05/2010
Se hai il valore 258 per separare le cifre, esegui un ciclo in cui dividi per 100 (ottieni 2), prendi il resto (58) e dividi per 10 (ottieni 5), prendi il resto (ottieni 8).

Per i caratteri, nello stesso modo, convertendo la singola cifra ottenuta nel corrispondente valore ASCII (basta una or con 0x30)


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
napco (Normal User)
Pro


Messaggi: 64
Iscritto: 16/04/2010

Segnala al moderatore
Postato alle 22:18
Venerdì, 14/05/2010
Hmm... Secondo me intende una conversione da numero a stringa (array di char). potresti utilizzare sprintf a tal proposito:

Codice sorgente - presumibilmente C/C++

  1. char A[6];
  2. int n = 12345;
  3.  
  4. sprintf(A, "%d", n); // A = "12345"



Se invece intendi convertire ogni singolo int in un singolo char, c'è un problema legato alla grandezza in bytes dei due tipi di dato. Un char non potrà mai contenere valori superiori a 255 o inferiori a -256 (potrei sbagliarmi, è da un pezzo che non riguardo queste cose).

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 1:11
Sabato, 15/05/2010
Testo quotato

Postato originariamente da napco:

Hmm... Secondo me intende una conversione da numero a stringa (array di char).



Sì, per la parte relativa alla sequenza di char (la prima parte della domanda)

Testo quotato

potresti utilizzare sprintf a tal proposito



Certo, potrebbe, anche se la sprintf non è una funzione sicura.

Testo quotato

Se invece intendi convertire ogni singolo int in un singolo char



No ... non è questa la seconda domanda ... vuole usare un array di int con una cifra in ogni elemento.

Se parte dal tuo codice, allora puo' scrivere

Codice sorgente - presumibilmente C/C++

  1. int v[6], i;
  2.     for(i=0; i<strlen(A); i++)
  3.         v[i]=A[i] & 0x0F;


Ultima modifica effettuata da nessuno il 15/05/2010 alle 1:12


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote