这里只写到了十亿的等级,如果要更大位数可以继续扩展
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string x;
cin>>x;
int i=x.length();
int w=i;
int num[i];
while(i>0)//字符串转整型数据
{
i--;
num[i]=x[i]-'0';
}
for(int s=0;s<w;s++)
{
switch(num[s])//数字读法
{
case 0:printf("ling ");break;
case 1:printf("yi ");break;
case 2:printf("er ");break;
case 3:printf("san ");break;
case 4:printf("si ");break;
case 5:printf("wu ");break;
case 6:printf("liu ");break;
case 7:printf("qi ");break;
case 8:printf("ba ");break;
case 9:printf("jiu ");break;
}
switch(w-s)//单位的读法(十、百、千、万、亿)
{
case 10:
case 6:
case 2:cout<<"shi "; break;
case 9:cout<<"yi "; break;
case 8:
case 4:cout<<"qian ";break;
case 7:
case 3:cout<<"bai ";break;
case 5:cout<<"wan ";break;
}
}
return 0;
}