用vector进行动态存储,读取一个增加一个,这样可以节省空间,并且按顺序输出。
#include <iostream>
#include <string.h>
#include <vector>
using namespace std;
int main()
{
vector<string> s;
string r;
char number[100];
cin >> number;
int i = 0;
while(i < strlen(number))
{
if(number[i] == '1') r = "yi";
else if(number[i] == '2') r = "er";
else if(number[i] == '3') r = "san";
else if(number[i] == '4') r = "si";
else if(number[i] == '5') r = "wu";
else if(number[i] == '6') r = "liu";
else if(number[i] == '7') r = "qi";
else if(number[i] == '8') r = "ba";
else if(number[i] == '9') r = "jiu";
else if(number[i] == '0') r = "ling";
else if(number[i] == '-') r = "fu";
s.push_back(r);
i++;
}
if(strcmp(number, "-0") == 0)
{
s.erase(s.begin());
}
for(i = 0; i < s.size() - 1; i++)
{
cout << s[i] << " ";
}
cout << s[i];
return 0;
}
对于“-0”的处理则单独列出来,读为“ling”,其余的都正常运行。
2018/1/30