#include <iostream.h>
#include <stdlib.h>
#include <string.h>
int i,app,len,zerodec,conta,val,calc;
int num[6];
char numin[7];
void decineunita(void);
void centinaia(void);
void migliaia(void);
const char *priminum[19]={"uno","due","tre","quattro","cinque","sei","sette",
"otto","nove","dieci","undici","dodici","tredici","quattordici","quindici",
"sedici","diciassette","diciotto","diciannove"};
const char *decine[9]={"dieci","venti","trenta","quaranta","cinquanta",
"sessanta","settanta","ottanta","novanta"};
const char *decman[9]={"nondovrestivedermi","vent","trent","quarant",
"cinquant","sessant","settant","ottant","novant"};
int main()
{
i=1;
zerodec=0;
conta=0;
cout<<"Programma che converte un numero in cifre in un numero in lettere.."<<endl;
cout<<"Attenzione! Funziona solo con valori compresi tra 0 e 100000"<<endl;
cout<<""<<endl;
cout<<"Inserisci il numero da convertire..."<<endl;
cin>>numin;
len=strlen(numin);
for(i=0;i<len;i++)
{
if(numin[i]=='0')
num[i]=0;
else
{
if(numin[i]=='1')
num[i]=1;
else
{
if(numin[i]=='2')
num[i]=2;
else
{
if(numin[i]=='3')
num[i]=3;
else
{
if(numin[i]=='4')
num[i]=4;
else
{
if(numin[i]=='5')
num[i]=5;
else
{
if(numin[i]=='6')
num[i]=6;
else
{
if(numin[i]=='7')
num[i]=7;
else
{
if(numin[i]=='8')
num[i]=8;
else
{
if(numin[i]=='9')
num[i]=9;
}
}
}
}
}
}
}
}
}
}
switch(len)
{
case 1:
{
val=num[i];
cout<<priminum[val];
}
break;
case 2:
{
decineunita;
if(zerodec==1)
{
i++;
val=num[i];
cout<<priminum[val];
}
}
break;
case 3:
{
centinaia;
i++;
conta=0;
decineunita;
if(zerodec==1)
{
i++;
val=num[i];
cout<<priminum[val];
}
break;
case 4:
{
decineunita;
if(conta==0)
i++;
migliaia;
i++;
centinaia;
i++;
conta=0;
decineunita;
if(zerodec==1)
{
i++;
val=num[i];
cout<<priminum[val];
}
}
break;
case 5:
{
i++;
decineunita;
if(conta==0)
i++;
migliaia;
i++;
centinaia;
i++;
conta=0;
decineunita;
if(zerodec==1)
{
i++;
val=num[i];
cout<<priminum[val];
}
}
break;
case 6:
{
centinaia;
i++;
decineunita;
if(conta==0)
i++;
migliaia;
i++;
centinaia;
i++;
conta=0;
decineunita;
if(zerodec==1)
{
i++;
val=num[i];
cout<<priminum[val];
}
}
break;
case 7:
cout<<"Un milione"<<endl;
break;
default:
cout<<"Numero non valido"<<endl;
}
cin>>i;
system("PAUSE"
;
return 0;
}
void centinaia(void)
{
if(num[i]<1)
{
app=num[i];
cout<<priminum[app],"cento";
}
else if(num[i]==1)
cout<<"cento";
}
void migliaia(void)
{
if(num[i]!=1)
{
if(conta==0)
{
val=num[i];
cout<<priminum[val];
}
cout<<"mila";
}
else
cout<<"mille";
}
void decineunita(void)
{
if(num[i]>1)
{
val=num[i];
if((num[i+1]==1) || (num[i+1]==8))
decman[val];
else
decine[val];
i++;
val=num[i];
cout<<priminum[val];
}
else
if(num[i]==1)
{
calc=10+num[i+1];
cout<<priminum[calc];
}
else
zerodec=1;
}
eccolo, grazie