Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo
Il più recente robot per la pulizia domestica di Dreame, modello Aqua10 Ultra Roller, abbina un potente motore di aspirazione della polvere a un sofisticato sistema di lavaggio con rullo integrato. Il tutto governato dalla logica di intelligenza artificiale, per i migliori risultati
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Siamo volati fino a Belfast, capitale dell'Irlanda Del Nord, per scoprire il nuovo Realme 15 Pro 5G Game Of Thrones Limited Edition. Una partnership coi fiocchi, quella tra Realme e HBO, un esercizio di stile davvero ben riuscito. Ma vi raccontiamo tutto nel nostro articolo
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo
Il Gigabyte Gaming A16 offre un buon equilibrio tra prestazioni e prezzo: con Core i7-13620H e RTX 5060 Laptop garantisce gaming fluido in Full HD/1440p e supporto DLSS 4. Display 165 Hz reattivo, buona autonomia e raffreddamento efficace; peccano però le USB e la qualità cromatica del pannello. Prezzo: circa 1200€.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-10-2013, 15:34   #1
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
[C] Conversione di un intero in codice ASCII

Salve..
Vorrei chiedervi se ho un numero intero e voglio risalire al suo codice ASCII come devo fare??
con i caratteri è facile, basta leggere ogni carattere con %d, ma dato che gli interi gia vengono letti con %d, come faccio a stampare il codice ASCII di un numero intero??

Oppure devo per forza dichiarare la variabile in stringa?

Ultima modifica di Lucariello96 : 28-10-2013 alle 15:41.
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 15:50   #2
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da Lucariello96 Guarda i messaggi
Salve..
Vorrei chiedervi se ho un numero intero e voglio risalire al suo codice ASCII come devo fare??
con i caratteri è facile, basta leggere ogni carattere con %d, ma dato che gli interi gia vengono letti con %d, come faccio a stampare il codice ASCII di un numero intero??

Oppure devo per forza dichiarare la variabile in stringa?
Suggerimento, guarda la posizione dei caratteri numerici nella tabella ASCII:
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 15:54   #3
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
lo so quindi?
ho provato con la stringa di caratteri e i numeri nn riesco a leggerli..
non so come fare a leggere questi cavolo di numeri... potreste scrivermi come fare per favore?
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:00   #4
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Ma tu sei quello che ha 9 in informatica? Mi sa che il tuo prof. è un po' largo coi voti Poi però avrai 0 in matematica...cosa alquanto strana dato che sono collegate sotto molti aspetti.

Ti è stata postata la tabella ascii, sono 255 caratteri. Basta fare una semplice operazione matematica.

Saluti.

Ultima modifica di airon : 28-10-2013 alle 16:04.
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:08   #5
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
Se apprendo le cose le faccio subito mie.. se mi dite come fare..
cmq in matematica è vero che sono poco buono
cmq forse ho capito basta aggiungere 48 al numero?
però io volevo capire se c'era un comando per farlo automatico...
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:14   #6
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Si abbiamo capito che apprendi facilmente ma qui si tratta di logica...non di apprendere una nozione matematica o istruzione C che per quello che devi fare non esiste.

Detto questo,
non capisco però perché ti serve sta cosa. Se tu chiedi con la scanf un carattere, quindi usi %c...puoi immettere anche un numero e quindi la printf che usi (con %d) ti stampa il codice ascii giusto anche dei numeri, è matematica...

Se invece sei obbligato ad usare nella scanf il %d, quindi un numero, ci sei arrivato, +48
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:23   #7
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
Guarda non so se hai letto il post principale dove ho scritto " Oppure devo per forza dichiarare la variabile in stringa?"
Lo sapevo che posso farlo con la stringa, infatti così l'avevo fatto... e anche con il +48 l'avevo capito.. il fatto e che volevo sapere solo se c'era un comando per farlo automaticamente visto che nel C non finisco mai di scoprire nuovi comandi che automatizzano molte operazioni...
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:26   #8
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Usiamo i giusti termini. In C il tipo stringa non esiste. Quello che tu fai lo fai con un carattere (tipo char).

Alla tua domanda ho risposto, non esiste una funzione della libreria. Non avrebbe nessun senso.
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:27   #9
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
Piuttosto ora mi è apparso un altro dubbio... se voglio utilizzare la tecnica +48, come faccio ad utilizzarla sui singoli numeri?
cioè ho il numero 2354, come lo scompongo in numeri singoli?
se per le stringhe utilizziamo %c e lavoriamo sui caratteri delle stringhe per un numero intero come si fa?
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:32   #10
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Nel caso di un numero composto da più cifre dipende da come lo prendi in input. Se prendi un numero anche qui è matematica...fai un ciclo e una divisione per prenderti le singole cifre. (Ti lascio a te scroprire come).

Se invece prendi una stringa (%s), dovrai usare un vettore (ma dubito tu li abbia studiati).

Ultima modifica di airon : 28-10-2013 alle 16:37.
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:44   #11
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
Forse divido per 10 100 1000 ecc... e prendo solo la parte intera del numero??
cmq per la stringa già ho risolto...
per la stringa uso un vettore stringa, e lo vado a leggere in un doppio ciclo, nel ciclo esterno vado a calcolare quanti elementi ha quel campo del vettore usando strlen(vett[i]), e poi nel ciclo interno scompongo i caratteri singoli con %c e utilizzando vett[i][j] ...
a tutto questo ci sono arrivato con la "logica" e senza spiegazioni, ne niente..
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:48   #12
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
No. La divisione che hai in mente non va bene...tu non sai quante cifre ha il numero.

Devi usare due divisioni matematiche. La divisione resto (operatore %) e la divisione normale. La prima ti prende l'ultima cifra, l'altra (sempre /10) di toglie (essendo un intero) sempre l'ultima cifra...fai un ciclo finché quella divisione è 0 (cioè hai tolto tutte le cifre...).

Per la parte relativa alla stringa...non so come possa funzionare. La stringa ha una dimensione [i]. Perché usi una stringa con due dimensioni (matrice)? [i][j].

Ti basta un solo indice in un unico for/while.

PS. Studia, anche matematica. La divisione con resto dovresti saperla in quarta superiore. Senza matematica di programmi non ne scrivi. Non serve a nulla sapere tutte le funzioni standard del C.

Ultima modifica di airon : 28-10-2013 alle 16:53.
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:53   #13
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
Saprai bene che quando dichiari una stringa usi char stringa[50][50]..
dichiari il max dei campi che può avere una stringa e il max dei caratteri che può contenere ogni campo... ebbene provando da me, ho dedotto di lavorare normalmente sul vettore, ma quando mi serve singolo apro un ciclo annidato dove faccio scorrere carattere per carattere di ogni campo....
Codice:
for(i=0;i<n;i++){
    x=strlen(stringa[i]);
             for(j=0;j<x;j++){
                 printf("%c ",stringa[i][j]);
                 }
                   }
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 16:56   #14
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Quella non è una stringa ma un vettore di vettori (singola stringa).

Tu stai dichiarando una matrice 50x50, ovvero 50 righe [i] lunghe 50 caratteri ciascuna [j]. (50 righe per 50 colonne)

Poi se rileggi bene quello che hai scritto: "il max dei campi che può avere una stringa" che vuol dire?"

Edito: ho visto ora il codice ed è corretto ma non si capisce perché tu lo debba usare. Stavamo parlando di semplici stringhe. Non di N stringhe prese in input e messe per non si sa quale motivo (non ce lo hai detto) in quella struttura.

PS.Come tu possa avere 9 in sistemi/informatica non l'ho ancora capito. Davvero, non prenderlo come un'offesa, ma studia, soprattuto su un supporto che ti fa fare tutto per gradi, hai una grande confusione in testa.

Ultima modifica di airon : 28-10-2013 alle 17:01.
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 17:01   #15
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
none... la matrice di una stringa si dichiara con 3 dimensioni tipo char stringa[50][50][50]... io non lavoro sulle dimensioni riga e colonna, ma lavoro su dimensione di riga e di caratteri... cmq già lo fatto e mi funziona...
sto facendo un programma che permetta di convertire tra di loro numeri stringhe codice ASCII, codice Esadecimale, e poi credo aggiungerò binario e ottale..
Cmq per quanto riguarda la divisione per resto già ci ho lavorato sopra.. però non ho ben capito come funziona come hai detto tu... non potresti scrivere il codice così mi è più chiaro?

PS: io voglio capire le cose in modo semplice...poi me le vado ad applicare io...
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 17:09   #16
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Quote:
Originariamente inviato da Lucariello96 Guarda i messaggi
none... la matrice di una stringa si dichiara con 3 dimensioni tipo char stringa[50][50][50]...
Ma che è sta roba? Siamo passati ad un bel cubo?
Quella è una matrice a 3 dimensioni.

Ora tu sei in 4 superiore e da quello che si evince non sai molto, fino a prova contraria so più di te sicuramente

char stringa[] = "ciao"; // non servono le altre dimensioni
char stringa_1[20]; //stringa lunga al max 20 caratteri

Per l'operatore % vallo a studiare da solo e poi torna.
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 17:17   #17
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
Già le conosco le stringhe oddio...
char stringa (Variabile stringa con 1 carattere unico)
char stringa [20] (Variabile stringa con max 20 caratteri)
char stringa [20][20] (Vettore stringa con 20 campi e caratteri)
char stringa [20][20][20] (Matrice 20x20, con ogni campo max 20 caratteri)

ricordati che c'è sempre una dimensione che dichiara il numero di caratteri!!

e il % , ovvero il modulo per calcolare il resto già lo conosco e già lo utilizzato.. esempio 10%2 = 10:2= 5 con resto di 0 --> 10%2=0.. se c'era resto è uguale a 1

Ultima modifica di Lucariello96 : 28-10-2013 alle 17:20.
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 17:32   #18
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Io mi ricordo benissimo e so cosa sono quelle dichiarazioni.

Il fatto di dovere usare per quello che devi fare una matrice anche solo a 2 dimensioni (non scomodiamo quella a 3) denota che hai perso pezzi per strada.

Prova a fare %10 e vedi che succede...poi fai /10 e vedi che succede e poi fai ancora %10 e così via.

Ultima modifica di airon : 28-10-2013 alle 17:35.
airon è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 17:43   #19
Lucariello96
Junior Member
 
Iscritto dal: Sep 2013
Messaggi: 20
ancora con questa matrice!! XD
non è una matrice!! lavoro sui caratteri, hai pure detto che ho fatto bene prima..
cmq ti ripeto per l'ennesima volta so a cosa serve il modulo... %10 ti divide il numero per 10 e poi ti calcola il resto che è compreso tra 0 e 9.. /10 invece divide semplicemente per 10 e ti dice quanto fa senza darti il resto..
Lucariello96 è offline   Rispondi citando il messaggio o parte di esso
Old 28-10-2013, 18:00   #20
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da Lucariello96 Guarda i messaggi
char stringa (Variabile stringa con 1 carattere unico)
char stringa [20] (Variabile stringa con max 20 caratteri)
char stringa [20][20] (Vettore stringa con 20 campi e caratteri)
char stringa [20][20][20] (Matrice 20x20, con ogni campo max 20 caratteri)
Non ho capito questa parte...
In particolar modo la terza e quarta riga. Secondo la tua interpretazione cosa dovrebbero rappresentare?
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo Dreame Aqua10 Ultra Roller, la pulizia di casa c...
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti Recensione Realme 15 Pro Game Of Thrones: un ver...
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Lapt...
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Cina, effetto sanzioni USA: Cambricon - ...
La gamma Mac riceverà tante novit...
DDR5 supera i 13.000 MT/s, stavolta uffi...
Il nuovo iPhone con display pieghevole p...
ASUS ProArt PA32KCX: ecco a voi il primo...
DAZN ci riprova: piano Full a meno di 20...
Nuovi prezzi, più bassi: scendono...
PC Desktop HP Victus con RTX 4060 e Ryze...
Giù di altri 10€: solo 939€ per M...
Offerte Amazon da non credere: sconti fo...
Windows 11 scivola sugli aggiornamenti d...
Razer Kiyo V2: la nuova webcam 4K con AI...
ASUS ROG NUC 9: i mini PC (ex) Intel, ad...
Streaming illegale, il ministro dello Sp...
Microsoft avrebbe affidato a Intel la pr...
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: 05:52.


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