Salut les amis,
est ce que c'est possible de convertir n'importe quel chiffre en lettre si oui comment fair ;-)
MERCI
Salut les amis,
est ce que c'est possible de convertir n'importe quel chiffre en lettre si oui comment fair ;-)
MERCI
Salut devlopassion
Qu'est ce que tu entends par convertir un chiffre en lettre car c'est très vague la.
Convertir le chiffre en lettre de l'alphabet en fonction de son numéro (de 1 à 26 seulement)
convertir ton chiffre en caractère (Table ASCII)
faire toi même un convertisseur.
??????
Bonjour;
si tu veu dir chiffre en lettre est de convertir "3" en "trois",
malheureusement ce n'est pas possible en c++builder te devrais coder la
fonction qui te permet de le faire
bonne chance
non, je veux convertir par exemple le "3" en "trois" et le "10" a "dix"
malhereusement je croi que c'est impossible![]()
MERCI comeme
Envoyé par kurul1
Il faut que tu fasse la fonction toi même, elle sera un peu lourde mais elle est possible, les chiffres de 1 à 16 son spécial mais a partir de 17 tu peut les décomposé, tu regarde la dizaine puis l'unité et tu peut recomposé pratiquement tous les chiffres supérieur à 17 avec seulement une petite dizaine de mot.
Salut !
C'est quoi au juste "3" ? 3 ou '3' ?non, je veux convertir par exemple le "3" en "trois" et le "10" a "dix"
malhereusement je croi que c'est impossible
Avec un tableau :
A plus !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 AnsiString Chiffres[] = {"zéro", "un", "deux".... "neuf"}; int Chiffre = 0; // de 0 à 9 Label1->Caption = Chiffres[Chiffre];
Salut,
Voilà une "petite" fonction qui permet de convertir les chiffres entre 19999 et 0:
Il te faut juste un Label, un Edit et un bouton.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110 void __fastcall TForm1::Button1Click(TObject *Sender) { if(Edit1->Text != "") { AnsiString val = ""; int Chiffre = StrToInt(Edit1->Text); //pour les miliers if(Chiffre > 100) { val += Conversion(Chiffre/1000,false,true) + " mille "; Chiffre = Chiffre%1000; } //pour les centaines if(Chiffre > 100) { val += Conversion(Chiffre/100,false,true) + " cent "; Chiffre = Chiffre%100; } //pour les dizaines et unitées if(Chiffre <17) { val += Conversion(Chiffre,false,false); } else { switch((Chiffre/10)) { //chiffre entre 18 et 19 case 1: val += Conversion((Chiffre/10)*10,false,false) + " " + Conversion(Chiffre%10,false,false); break; //chiffre entre 20 et 29 case 2: val += "vinght" + Conversion(Chiffre%20,true,false); break; //chiffre entre 30 et 39 case 3: val += "trente" + Conversion(Chiffre%30,true,false); break; //chiffre entre 40 et 49 case 4: val += "quarante" + Conversion(Chiffre%40,true,false); break; //chiffre entre 50 et 59 case 5: val += "cinquante" + Conversion(Chiffre%50,true,false); break; //chiffre entre 60 et 69 case 6: val += "soixante" + Conversion(Chiffre%60,true,false); break; //chiffre entre 70 et 79 case 7: val += "soixante " + Conversion(Chiffre-60,false,false); break; //chiffre entre 80 et 89 case 8: val += "quatre-vinght " + Conversion(Chiffre%80,false,false); break; //chiffre entre 90 et 99 case 9: val += "quatre-vinght " + Conversion(Chiffre-80,true,false); break; } } Label1->Caption = val; } } AnsiString Conversion(int nombre,bool dix,bool cent) { switch(nombre) { case 0: if(!dix)return "zéro" ; else return "" ; //pour 20,30,40 ... évite vinght zéro case 1: if(dix)return "et un" ; //pour 21,31,41 ... évite vinght un else if(cent)return "" ; //pour 100,200 ... évite un cent else return "un" ; //pour 101,201 ... évite cent et un case 2: if(!dix)return "deux" ; else return "-deux" ; //pour les liaison case 3: if(!dix)return "trois" ; else return "-trois" ; case 4: if(!dix)return "quatre" ; else return "-quatre" ; case 5: if(!dix)return "cinq" ; else return "-cinq" ; case 6: if(!dix)return "six" ; else return "-six" ; case 7: if(!dix)return "sept" ; else return "-sept" ; case 8: if(!dix)return "huit" ; else return "-huit" ; case 9: if(!dix)return "neuf" ; else return "-neuf" ; case 10:return "dix" ; case 11:if(!dix)return "et onze" ; // pour 71 évite soixante onze else return "onze" ; case 12:return "douze" ; case 13:return "treize" ; case 14:return "quatorze" ; case 15:return "quinze" ; case 16:return "seize" ; case 17:return "dix-sept" ; case 18:return "dix-huit" ; case 19:return "dix-neuf" ; default:return "" ; } }
Si ça vous intéresse, j'ai écrit dans le passé une petite routine transformant des nombres écrits en chiffres en leurs expressions en toutes lettres, pour des nombres compris entre 0 et 999999999. C'était pour imprimer des chèques.
Il est ci-dessous
.Il peut sans doute être mieux écrit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118 char *TabUnites[]={"un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix-sept", "dix-huit", "dix-neuf"}; char *TabDixaines[]={ "dix", "vingt", "trente", "quarante", "cinquante", "soixante", "soixante dix", "quatre-vingt", "quatre-vingt dix"}; //---------------------------------------------------------------------- void SousNombre(const unsigned int n, char* chaine) { chaine[0]=0; unsigned int centaines=n/100, n1=n%100, dixaines=n1/10, unites=n1%10; if(n==0) return; if(centaines!=0) { if(centaines==1) strcpy(chaine, "cent"); else { strcpy(chaine, TabUnites[centaines-1]); strcat(chaine," cents"); } if(n1==0) return; strcat(chaine," "); } if(unites==0) { strcat(chaine, TabDixaines[dixaines-1]); return; } if(n1<20) // 0 < n1 < 20 { strcat(chaine, TabUnites[n1-1]); return; } if(n1<60) // 19 < n1 < 60 { strcat(chaine, TabDixaines[dixaines-1]); strcat(chaine," "); if(unites==1) strcat(chaine, "et "); strcat(chaine, TabUnites[unites-1]); return; } if(n1<80) // 59 <n1 < 80 { unites=n1-60; strcat(chaine,"soixante "); if(unites==1) strcat(chaine, "et "); strcat(chaine, TabUnites[unites-1]); return; } unites=n1-80; strcat(chaine,"quatre-vingt "); strcat(chaine, TabUnites[unites-1]); return; } //--------------------------------------------------------------------------- void Nombre(const unsigned int n, char* resultat) { char chaine[200]; resultat[0]=0; if(n==0) { strcpy(resultat, "zéro");return; } unsigned int milliards, millions, mille, n1, n2, reste; milliards=n/1000000000; n1=n%1000000000; millions=n1/1000000; n2=n1%1000000; mille=n2/1000; reste=n2%1000; AnsiString asMilliards="", asMillions="", asMille="", asReste=""; if(milliards!=0) { SousNombre(milliards, chaine); asMilliards=AnsiString(chaine); asMilliards=asMilliards+" milliard"; if(milliards>1) asMilliards=asMilliards+"s"; strcpy(resultat, asMilliards.c_str()); if(n1==0) return; strcat(resultat, " "); } if(millions!=0) { SousNombre(millions, chaine); asMillions=AnsiString(chaine)+" million"; if(millions>1) asMillions=asMillions+"s"; strcat(resultat, asMillions.c_str()); if(n2==0) return; strcat(resultat, " "); } if(mille!=0) { chaine[0]=0; if(mille>1) SousNombre(mille, chaine); asMille=AnsiString(chaine)+" mille"; strcat(resultat, asMille.c_str()); if(reste==0) return; strcat(resultat, " "); } SousNombre(reste, chaine); strcat(resultat, chaine); if((reste%100)==80) strcat(resultat, "s"); return; } //--------------------------------------------------------------------------- // exemple d'utilisation char chNombre[200]; double montant= StrToFloat(eMontantChiffres->Text); AnsiString asFrancs, asCentimes; francs=int(montant); centimes=int(100*(montant-francs)+0.5); Nombre(francs,chNombre); chNombre[0]=toupper(chNombre[0]); asFrancs=AnsiString(chNombre); Nombre(centimes, chNombre); asCentimes=AnsiString(chNombre);
merci beaucoup mes amis
c'est tres gentil vraiment :-)
Partager