![](https://img-blog.csdn.net/20170524114130759)
/* 方法1
#include<stdio.h>
#define N 1000
char inStr[N];
int outStr[N];
int main()
{
char stdStr[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
scanf("%s",inStr);
int i,sum=0;
for(i=0;inStr[i]!='\0';i++)
sum+=inStr[i]-'0';
i=0;
while( sum )
{
outStr[i++]=sum%10;
sum/=10;
}
for(int j=i-1;j>=0;j--)
printf("%s%c",stdStr[outStr[j]],j?' ':'\n'); //冒号表达式j?' ':'\n'
return 0;
}
*/
/*方法2*/
#include<stdio.h>
int flag=0,count=0;
char list[15][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};//为何[15][5]
char str[110]; //为何110
void write(int x){
if(x>9) write(x/10);
if(flag) printf(" ");else flag=1;
printf("%s",list[x%10]);
}
int main(){
gets(str);//gets读入字符串
for(int i=0;str[i]!='\0';i++){
count+=str[i]-'0';//-'0'转化成整型
}
write(count);
return 0;
}