题目大意:给出一串数字,输出这串数字的读音
AC代码
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int len;
string bit[9]={"\0","Shi","Bai","Qian","Wan","Shi","Bai","Qian","Yi"};
string num[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
string s;
cin>>s;
len=s.length();
if(s[0]=='-')
{
cout<<"Fu ";
len--;
s.assign(s,1,len);
}
bool end[9]={1,1,1,1,1,1,1,1,1};
for(int i=len-1;i>0;i--)
{
if(s[i]=='0')
{
end[i]=false;
}
else if(len-1-i<4)
{
i=len-4;
}
else
break;
}
for(int i=0;i<len;i++)
{
int t=s[i]-='0';
if(t!=0||end[i])
{
if(i!=0)
cout<<' ';
cout<<num[t];
}
if(t!=0||len-1-i==4)
{
if(i!=len-1)
cout<<' ';
cout<<bit[len-1-i];
}
}
cout<<endl;
return 0;
}
实现原理很简单,用两个字符串数组作映射,使得每个位置、每个数字都有对应的拼音输出。
只要if写的细心一点都是能AC的