#include
#include
using namespace std;string zhCN[] = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};//正常记账范围内数值string zhUNIT[] = { "拾","佰","仟","万","拾","佰","仟","亿" ,"拾","佰","仟","万", "拾","佰","仟"};int main(){ //12,345 ,678, 902 while (1) {  char cc[32];  scanf("%s", cc);  string str_value(cc);  cout << "input value is " << str_value.c_str() << endl;  stack
nValue;  for (int i = 0; i < str_value.length(); i++)  {   const char cc = str_value.at(i);   nValue.push((cc - '0'));  }  stack
cn;  int ii = 0;  int zcount = 0;  while (!nValue.empty())  {   int value = nValue.top();   cn.push(zhCN[value]);   cn.push(zhUNIT[ii]);   nValue.pop();   ii++;  }  if (!cn.empty())  {   cn.pop();  }  //删除零  stack
cn2;  while (!cn.empty())  {   while (cn.top() != zhCN[0])   {    cn2.push(cn.top());    cn.pop();    if (cn.empty())    {     break;    }   }   if (cn.empty())   {    break;   }   //找到零结束   while (cn.top() == zhCN[0])   {        cn.pop();    if (cn.empty())    {     break;    }    if (cn.top() == zhUNIT[3])//保留万    {     cn2.push(zhUNIT[3]);    }    if (cn.top() == zhUNIT[7])//保留亿    {     cn2.push(zhUNIT[7]);    }    cn.pop();   }//找到零结束   if (!cn.empty())   {    cn2.push(zhCN[0]);   }     }  stack
cn3;  string newstr = "";    while (!cn2.empty())  {   cn3.push(cn2.top());   cn2.pop();  }  while (!cn3.empty())  {      newstr += cn3.top();   cn3.pop();  }    cout << "newstr is " << newstr.c_str() << endl; } return 0;}