#include<iostream>
using namespace std;
int main(){
string s,num[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
int sum=0;
cin>>s;
for(int i=0;s[i];i++)
sum+=s[i]-'0';
string s2=to_string(sum);
for(int i=0;s2[i];i++)
{
if(i)
cout<<' ';
cout<<num[s2[i]-'0'];
}
return 0;
}
之前做的方法太复杂了,看了大佬的答案重写了一遍,to_string()函数太好用了。
对于输出末尾不能留空格,我之前总是把空格输出放在其他输出后面,没想到还能放前面。
for(int i=0;s2[i];i++)
{
if(i)
cout<<' ';
cout<<num[s2[i]-'0'];
}
这样i从零开始时,判断是否输出空格就很简单了。
判断字符串末尾,我用的是s[i]不为零,也可以用i<s.length();