PDA

Visualizza la versione completa : [C] Conversione da intero a stringa


Zeldic
12-12-2010, 02:01
Potete gentilmente dirmi solo se è possibile svolgere questo esercizio in C, perché io lo trovo assurdo :

"Convertire un numero fra 1 e 999 in lettere (es : converto 756 in SETTECENTOCINQUANTASEI).

Quale libreria altrimenti farebbe al caso mio?
La prima cosa che mi viene a mente poi è come potrebbe il compilatore tradurre in italiano un numero, e se io invece fossi un'utente inglese, o tedesca?? :dottò:
Grazie per qualunque suggerimento.

simo_85
12-12-2010, 02:30
Originariamente inviato da Zeldic
Potete gentilmente dirmi solo se è possibile svolgere questo esercizio in C, perché io lo trovo assurdo :
"Convertire un numero fra 1 e 999 in lettere (es : converto 756 in SETTECENTOCINQUANTASEI).

Cosa c'è di assurdo?? Non ti serve nessuna libreria, solo far funzionare la logica..
Se tu sai a priori che il numero è più piccolo di 1000, con una atoi o con una itoa meglio (dipende poi da come ottieni il numero). A seguire fai un scanning dell'array, sono al massimo 3 elementi (999)..

Da qui:


void hundreds(char i)
{
...

if(i == '7')
printf("Settecento");

...
}
...
int main(void)
{
int i, number;
char str_number;
...

for(i = 0; i < strlen(str_number); i++)
{
/*if strlen(str_number) == 3 */
/* if i == 0 */
hundreds(str_number[i]);
...
}

Ovviamente il codice è buttato giù così al momento, ma spero che renda l'idea..
Poi ovviamente invece di stampare "Settecento" direttamente puoi implementare 3 char *arrays[] per le scritte.. L'esercizio è più che fattibile..

La prima cosa che mi viene a mente poi è come potrebbe il compilatore tradurre in italiano un numero, e se io invece fossi un'utente inglese, o tedesca??
:facepalm:

Loading