Código fuente de moneda correcto
# include & ltiostream & gt
# include & ltstring& gt
# include & ltsstream & gt
# include & ltcstdlib & gt
# include & ltctime & gt
Usar espacio de nombres std
String chs (cadena constante & in)
{
typedef unsigned size_t;
String chs[] = { "cero", "uno", "dos", "tres" ,"cuatro","cinco","seis","siete","ocho","nueve"};
Número de cadena[] = p>
{
"Diez", "Cien", "Mil", "Diez Mil",
"Diez", "Cien", "Mil", "Miles de millones"”,
“Diez”, “Cien”, “Mil”, “Trillón”,
“Diez”, “Cien”, “Mil”, “Jing”,
"Diez" , "Cien", "Mil", "Oye",
"Diez", "Cien", "Mil", "Ocho",
"Diez", "Cien" , "Mil", "Mao",
"Diez", "Cien", "Mil", "Gou",
"Diez" ", "cien", "mil ", "espada",
"十", "cien", "mil", "正",
"十", "百" ", "Miles", " Zai",
"Diez", "Cientos", "Miles", "Bao"
};
Valor de cadena (pulg);
Valor de cadena;
if(value.find(' . '))== cadena::npos)
{
if(valor tamaño()% 4 = = 2 & amp; & amp valor[0] == '1 ')
{
borrar(0, 1); p>
valor .append(" ten ");
}
Temperatura de cadena;
for (size_t I = 0; i & ltvalue . tamaño(); ++i)
{
if (i!= 0 & amp& amp i!= valor . tamaño ()&&temporary!=CHS[static_cast<int>(valor [i]-'0')])
{
string temp1(VALUE, VALUE.size() - 2, 2);
if( temp1! = cadena("cero"))
valor append(dígitos[valor . tamaño()-I-1]);
}
if( temp! = CHS[static _ cast & lt; int & gt(valor[i] - '0')])
{
valor . <int>(valor[I]-' 0 '));
If(temp == cadena ("cero"))
temp = CHS[static _ cast & lt ; int & gt(valor[I]-' 0 ')]
}
}
}
Otros p>
{
Cadena decimal(valor.begin(), valor.begin() + valor.find(' .
')));
Puntuación de cadena (value.begin() + value.find(' . ')) + 1, valor
if( decimal end()); tamaño() = = 2 & amp; & ampdecimal[0] == '1 ')
{
decimal.erase(0, 1);
valor .append(" diez ");
}
Temperatura de cadena;
for(size_t I = 0;i<decimal .size();+ +i)
{
if (i!= 0 &&i!= decimal .size()&&trabajador temporal!= CHS[static_cast<int>(valor[i] - ' 0')])
{
string temp1(VALUE, VALUE.size() - 2 , 2);
if(temp1!= string( "cero"))
valor . append(digits[decimal . size()-I-1]);
p>}
if(temp). != CHS[static_cast<int>(decimal[i] - '0')])
{
valor . decimal [I]--0 '));
If(temp == cadena ("cero " ))
temp = CHS[static_cast<int>(decimal[I]- ' 0 ')];
}
}
cadena temp1(VALUE, VALUE.size() - 2, 2); p>If(temp1 == "cero ")
VALUE.erase( VALUE.size() - 2, 2);
Valor += "punto";
for(size_t I = 0;i<fraction.size();+ +i)
{
valor append(CHS[static _ cast & lt; int &. gt(fracción [I]-' 0 '));
}
}
Valor de retorno;
}
Cadena chRmb (cadena constante y entrada de amplificador)
{
typedef unsigned size_t;
Cadena chs[] = { "zero", " uno", "dos", "tres", "cuatro" ","五","地","七","八","九"};
Número de cadena[] =
{
"Recibir", "Cien", "Mil", "Diez Mil",
"Shi", "Cien", "Mil", "Miles de millones",
"Shi", "cien", "mil", "billones",
"sí", "blanco", "dinero", "respeto",
"tomar", "cien", "Mil", "Oye",
"Shi", "Cien", "Mil", "Diez",
"Historia", "Blanco", "Qian", "Mao",
"Conectar", "Cien", "Mil", "Deshacerse",
" Shi", "Cien", "Mil", "Liu",
"Sí", "Blanco", "Qian", "Zheng",
"Recibir", " Cien", "Mil", "Zai",
"Recibir", "Cien", "Mil", "Informe"
"
};
String frac[] = { "ángulo", "minutos", "millas", "milímetros" };
Valor de cadena ( in);
Valor de cadena;
if(value.find(' . '))== cadena::npos)
{ p>
if(valor . tamaño()% 4 == 2 & & valor[0] == '1 ')
{
valor.erase (0, 1) ;
valor . append(" Recoger ");
}
Temperatura de cadena
for (size_t I = 0; i & ltvalue . ;int>(valor[i]-'0')])
{
string temp1(VALUE, VALUE.size() - 2, 2);
if(temp1!= cadena("cero"))
valor append(dígitos[valor . tamaño ()-I-1]);
}
if(temp!= CHS[static_cast<int>(value[i]-'0') ])
{
value . & lt; int & gt(valor [I]-' 0 '));
If(temp == cadena ("cero"))
temp = CHS[static_cast< int>(valor[I]-' 0 ')];
}
}
}
Otros
{
Cadena decimal(value.begin( ), value.begin() + value.find(' . ')));
Puntuación de cadena (value.begin( ) + valor.find(' . '))+ 1, valor . end());
if(decimal . tamaño()% 4 = = 2 & amp; & ampdecimal[0] == '1 ')
{
decimal.erase(0, 1);
valor .append(" Recoger ");
}
Temperatura de cadena;
p>for(size_t I = 0; i & ltdecimal . size(); ++i)
{
si (yo! = 0 &&i! = decimal .tamaño()&temporal! =cadena(CHS[static_cast<int>(valor[i] - '0 ')))
{
cadena temp1(VALOR, VALOR.tamaño () - 2, 2) ;
if(temp1!= cadena("cero"))
valor append(dígitos[decimal . size()-I-1] );
}
if(temp!= CHS[static_cast
<int & gt(decimal[i] - '0')])
{
valor . append(CHS[static _ cast <int & gt(decimal [I] ]--0 '));
If(temp == cadena ("cero"))
temp = CHS[static _ cast & lt; I]-' 0 ')];
}
}
string temp1(VALUE, VALUE.size() - 2, 2 ); p>
If(temp1 == "cero ")
VALUE.erase(VALUE.size() - 2, 2);
Valor +=" yuanes ";
for(size_t I = 0;i<fraction . size();++i)
{
valor append(CHS [static _ cast < int>(fracción[I]-' 0 '));
if (i! = fracción.size() - 1)
valor .append(frac[I]);
}
}
Valor de retorno;
}
Plantilla & tipo ltT, tipo U & gt
Conversión de palabras
{
stringstream sstrm
sstrm & lt& ltu;
T t
sstrm & gt& gtt;
return t;
}
int main()
{
srand((unsigned)time(0));
for(int I = 0;i<100;++i)
{
cadena val = lexical _ cast & ltstring& gt(I *(rand()% 100000)*(rand()% 10 * 0.001));
cout & lt& ltval & lt& lt":" & lt& lt \ n ';
cout & lt& lt"Capital:"
cout & lt& lt"RMB:"
}
cout & lt& ltCHS(cadena(" 8769123456789123456789123456789123456789.123456789 ")& lt;& ltendl
cout & lt& ltchRmb(cadena(" 876 89123456789123456789.12345))<
Renminbi: mil trescientos cuarenta y diez Lu yuanes, ochenta centavos y tres centavos.
4975,51:
Capital: 4975,51.
RMB: 49.750,51 yuanes.
229.768:
Capital: 229.768
Renminbi: doscientos veintinueve Yuan Qijiao Lufen.
709.108:
Capital: Setecientos Nueve Yuan Ciento Ocho Centavos
Renminbi: Setecientos Nueve Yuan Ciento Ocho Centavos.
0:
Capital: cero
RMB: cero
3408,64:
Capital: 3.408,64 Yuan
RMB: 34.088,64 yuanes.
999.168:
Capital: 999.168
Renminbi: 900, 900, 9 yuanes, 1 centavo.
1937,93:
Capital: 1.937,93 yuanes
RMB: 19137,93 yuanes.
1459,55:
Capital: 1459,55.
Renminbi: Mil cuatrocientos quinientos nueve yuanes, cinco jiao y cinco céntimos.
643.965:
Capital: 643.965
Renminbi: Lu Bai Si Shi Tres Yuan Jiu Jiao Wu.
8138.56:
Mayúscula: ochenta y ocho mil ciento treinta y ocho yuanes centavos de tierra de cinco esquinas
RMB: ocho mil ciento tres y ocho Punto de centavos de tierra de cinco esquinas de yuanes.
1851.18:
Capital: 1851.18.
Renminbi: Mil ochocientos quinientos un yuanes con una moneda de diez centavos y ocho céntimos.
10894.1:
Capital: ciento ochenta y un ciento noventa y cuatro yuanes y una moneda de diez centavos
RMB: ciento ochenta y un ciento noventa -cuatro yuanes
p>
3580,43:
Capital: 3.580,43.
Renminbi: tres mil quinientos ochenta y cuatro yuanes.
10202.8:
Capital: Mil doscientos doscientos ochenta céntimos
RMB: 102.002 yuanes y ocho céntimos
1857,05 :
Capital: Mil ochocientos quinientos setenta y siete yuanes con cinco céntimos
Renminbi: Mil ochocientos quinientos setenta y siete yuanes con cero céntimos.
0:
Capital: cero
RMB: cero
6364,95:
Capital: Lu Qiansan Bai Lu Shi Si Yuan Jiu Jiao Wu Wu
RMB: Lu Qian San Bai Lu Shi Si Yuan Jiu Jiao Wu Wu.
6422.24:
Capital: LU Qian Si Bai 2 Shi Yuan 2 Jiao 4 centavos
RMB: LU Qian Si Bai 2 Shi Yuan 2 Jiao 4 puntos.
3198,01:
Capital: 3.198,01.
RMB: 31.198,01 yuanes.
3182.1:
Representado en texto: 3182.1.
RMB: 31.812,1 yuanes.
8802.07:
Capital: 8, 802.07.
Renminbi: 8.000, 800, 2 yuanes, siete céntimos
1757,28:
Capital: 1757,28.
RMB: 17.577,28 yuanes.
868.035:
Mayúscula: Ochocientos Lu Shie Dieciocho Yuan Cero Treinta Céntimo Cinco Centavos
RMB: Ochocientos Lu Shie Dieciocho Yuan Cero Treinta Céntimo Cinco Centavos.
1017.5:
Capital: Mil ciento setenta y siete yuanes con cinco centavos
RMB: Mil ciento diecisiete y cinco yuanes.
855.423:
Capital: 855.423
Renminbi: 800, 55, 4, 4, dos y tres céntimos
782,86:
Mayúsculas: Setecientos ochenta y dos yuanes con ochenta céntimos por tierra
Renminbi: setecientos ochenta y dos yuanes con ochenta céntimos por tierra.
608.705:
Capital: Lu Bai08 Yuan Qi Bai0 Wufen
Renminbi: Lu Bai08 Yuan Qijiao Wufen.
2873,88:
Capital: 2873,88 yuanes
RMB: 28, 173 yuanes y 8 centavos.
4847.04:
Mayúsculas: Cuatro Mil Ochocientos Cuatro Shiqi Yuan Cero Cuatro Centavos
RMB: Cuatro Mil Ochocientos Cuatro Diez Siete Yuan Cero Cuatro Centavos.
9339,12:
Capital: 9339,12.
RMB: 93.390,12 yuanes.
3469,42:
Capital: Tres mil cuatrocientos sesenta y nueve yuanes cuatro céntimos con dos céntimos
RMB: 34.690,42 yuanes.
518.404:
Capital: 518.404
Renminbi: quinientos ochenta y ocho yuanes, cuatro céntimos y cuatro céntimos.
8476,53:
Capital: 8.004, 107, Lu Yuan, 5 jiao y 3 centavos
RMB: 8.000, 400, 71, Lu Yuan, 5 jiao y 3 céntimos
4435,2:
Letras mayúsculas: cuatro mil cuatrocientos treinta y cinco yuanes dos céntimos
RMB: 44.135,20 yuanes.
4175.33:
Capital: Cuatro mil ciento setenta y cinco yuanes tres monedas de diez centavos y tres centavos
RMB: 41175330 yuanes.
11130.4:
Capital: Mil Un Mil Ciento Treinta y Cuatro Centavos
RMB: Mil Un Mil Ciento Treinta y Cuatro Centavos.
3817,8:
Capital: 3817,8.
/p>
Renminbi: Lu Qian Si Bai Jiu Shi One Yuan Qi Jiao Lu Fen.
9686,3:
Capital: 9686,3.
RMB: 96816,3 yuanes
870.276:
Capital: 800.712 yuanes Qijiaolufen
RMB: 800 Setecientos un yuanes veinticinco siete centavos.
3120.12:
Capital: 3120.12.
RMB: 31.120,12 yuanes
7637,76:
Capital: Qiqian Lu Bai San Shi Qi Yuan Qi Jiao Lu Fen
RMB: 76137,76 yuan.
10891.5:
Capital: Ciento Ochenta y Nueve Cientos Un Yuan y Cinco Céntimos
RMB: Ciento Ochocientos Noventa y Un Yuan y Cinco centavos.
7922,25:
Capital: Siete Mil Novecientos Doscientos Dos Yuanes Dos Ángulos Cinco Centavos
RMB: 79122,25 yuanes.
2122.05:
Capital: 2122.05.
RMB: 21122,05 yuanes.
1827.65:
Mayúscula: mil ochenta y un ciento veintisiete yuanes Lujiao cinco centavos
RMB: mil ochenta y un ciento veintisiete yuanes Lujiao cinco puntos.
2192.7:
Representado en texto: 2192.7.
RMB: 21.192,70 yuanes.
633.588:
Capital: 633.588
Renminbi: Lu Bai Treinta Treinta Yuan Cinco Jiao Ocho Centavos.
3333,45:
Capital: Tres mil trescientos treinta y tres yuanes cuatro céntimos
RMB: 33.333,45 yuanes.
3104.45:
Capital: Tres mil ciento cuatro dólares con cuatro centavos.
RMB: 31.040,45 yuanes.
20018.7:
Capital: 20.018,7
RMB: Doscientos ciento ochenta y siete yuanes.
914,16:
Capital: 914,16
RMB: 9140,16 yuanes.
8619,85:
Capital: 8.619,85 yuanes
Renminbi: ocho mil lu, ciento nueve yuanes, ochenta y cinco céntimos
9418,56 :
Capital: 9418,56.
RMB: 94188,56 yuanes.
5793,61:
Capital: 5.793,61 yuanes
RMB: 57.993,61 yuanes.
0:
Capital: cero
RMB: cero
0:
Capital: cero p>
p>
RMB: cero
2437,76:
Capital: 2437,76.
RMB: 20.000, 4.000, 300, 7, 10, 7, Yuan, 7.000 y 60 céntimos.
8439.65:
Capital: Ochenta y ocho mil cuatrocientos treinta y nueve yuanes, ángulo terrestre cinco centavos
RMB: Ocho mil cuatrocientos treinta- nueve yuanes, ángulo de tierra de cinco puntos.
1704.86:
Capital: Mil setecientos cuatro yuanes ochenta centavos.
Renminbi: mil setecientos cuarenta yuanes con ochenta céntimos.
1704.5:
Capital: Mil Setecientos Cuatrocientos Cinco Jiao
Renminbi: Mil Setecientos Cuatro Mil Cinco Shiyuan.
13277.4:
Capital: Mil Treinta y Tres Mil Doscientos Siete Siete Yuan Cuatro Jiao
RMB: Mil Treinta y Tres Mil Doscientos Siete Siete Siete Yuan Cuatro Centavos Jiao
17714.1:
Capital: Mil Siete Mil Setecientos Diez Cuatro Yuan Una Diota
RMB: Diecisiete Mil Setecientos Catorce Yuan todo.
244,8:
Capital: 244,8
Renminbi: doscientos catorce yuanes con ocho céntimos.
0:
Capital: cero
Renminbi: cero
8986.56:
Capital: ocho mil nueve Ciento ochenta ciento ochenta ciento ochenta ciento ochenta ciento ochenta ciento ochenta ciento ochenta ciento ochenta ciento ochenta ciento ochenta ciento ochenta uno Lu Yuan y cinco jiao puntos terrestres
RMB:
7.797,12:
Capital: 7.797,12.
Renminbi: siete mil setenta y siete yuanes y una moneda de diez centavos.
14659.6:
Mayúscula: Mil Cuatro Mil Lu Ciento Cinco Shijiu Yuan Lufen
RMB: Mil Cuatro Mil Lu Ciento Cinco Shijiu Yuan.
4953,59:
Capital: 4.953,59 yuanes
RMB: 49530,59 yuanes.
16352.6:
Capital: Mil Lu, Trescientos Cinco y Dos Yuan, Lufen
RMB: Mil Lu, Trescientos Cinco Mierda y Dos yuanes.
7079.45:
Capital: Siete mil cero siete diez nueve yuanes cuatro centavos cinco centavos
RMB: siete mil cero setecientos nueve nueve yuanes cuatro centavos cinco centavos
23194:
Capital: Doscientos treinta mil ciento noventa y cuatro yuanes.
RMB: 23.011.914 yuanes
2985,44:
Capital: 2985,44.
RMB: 29850,44 yuanes.
Ocho informes, siete mil seiscientos noventa y uno, dos mil trescientos cuarenta y cinco, seis mil setecientos ochenta y nueve arroyos, mil doscientos treinta y cuatro acequias, cinco mil seiscientos setenta y ocho, nueve mil ciento veintitrés, cuatro mil quinientos sesenta y siete, ocho mil novecientos doce Beijing, tres mil cuatrocientos cincuenta y seis mil setecientos ochenta y nueve mil ciento y veintitrés mil quinientos ochenta y nueve, mil setecientos ochenta y nueve, mil doscientos ochenta y nueve, mil doscientos ochenta y nueve.
876.912.3456.789 ríos, 1.234 acequias, 5.677 Ochenta y un millones doscientos treinta y cuatro mil Wu Bai sesenta y siete mil ochocientos veintitrés y cuatro mil cuatrocientos cincuenta y seis mil ochocientos noventa y nueve.