帮帮忙!!! 阿拉伯数字转换中文数字 有什么好的方法 越简单越好
用户输入万亿以下的数字转换成中文数字。 例如:输入:123456
输出:十二万三千四百五十六
输入:10
输出:十
特例:输入:120000
输出:十二万
程序代码:
#include<stdio.h>
#include<string.h>
#define N 20
int main(void)
{
char bit[6][4]={"","","千","百","十",""};
char num[11][4]={"","一","二","三","四","五","六","七","八","九"};
char str[N];
int i,j,len;
while(1)
{
scanf("%[0-9]9s",str);
while(getchar()!='\n');
if(str[0]=='0')
{
puts("零");
break;
}
len=strlen(str);
if(len>9)
{
str[9]=0;
len=9;
}
for(i=0,j=len;i<len;++i,--j)
{
if(str[i]=='0')
{
if(str[i+1]!='\0'&&str[i+1]!='0')
{
printf("零");
}
if(len-i!=5&&len-i!=9)
continue;
}
printf("%s%s",num[str[i]-'0'],bit[(5-j%5)%5+(len-i>5?0:1)]);
if(len-i==9)
{
printf("亿");
}
if(len-i==5&&len<9)
{
printf("万");
}
}
puts("");
}
return 0;
}