代码:
#include <string>
#include <iostream>
#include <stdlib.h>
using namespace std;
//char input[101];
char result[10][20]={
"ling",
"yi",
"er",
"san",
"si",
"wu",
"liu",
"qi",
"ba",
"jiu"
};
int main()
{
string input;
int sum=0;
cin>>input;
for(int i=0;i<input.length();i++)
{
string s;
s.push_back(input[i]);
sum+=atoi(s.c_str());
}
string sres=to_string(sum);
for(int i=0;i<sres.length();i++)
{
string s;
s.push_back(sres[i]);
if((i+1)!=sres.length())
{
cout<<result[atoi(s.c_str())]<<" ";
}
else
cout<<result[atoi(s.c_str())];
}
return 0;
}
本题思路很简单,但是代码编辑过程中遇到了一些问题。长时间不用C++,忘掉了很多东西。
c++中将一个整形转化为string类型需用 string s=to_string(value); //c++11标准下支持
将一个字符类型转化为整型可以使用 atoi()函数,由于atoi()参数为const char*类型,所以必须把待转化的字符转化一下。
这里用的是下面这种方式:
string s;
s.push_back(input[i]);
atoi(s.c_str());
还有OJ系统编译环境的一些小细节,不再列出了......