#ifdef _UNICODE | UNICODE
#define STRING wstring
#else
#define STRING string
#endif
void TransToStr(int nNum,STRING &str)
{
STRING strRead1[10] = {_T("零"), _T("一"), _T("二"), _T("三"), _T("四"), _T("五"), _T("六"), _T("七"), _T("八"), _T("九")};
STRING strRead2[10] = {_T(""), _T(""), _T("十"), _T("百"), _T("千"), _T(""), _T("十"), _T("百"), _T("千"), _T("亿")};
int iTemp, cnt = 1;
iTemp = nNum < 0 ? -nNum : nNum;
if(nNum < 0) str += _T("负");
bool bOutZero = false;//是否输出零的布尔变量
int iZeroCnt = 0;
int num[30];
while (iTemp >= 0)
{
if (iTemp < 10)
{
num[cnt] = iTemp;
break;
}
else
{
num[cnt] = iTemp%10;
iTemp /= 10;
}
++cnt;
}
if (cnt == 1)
str += strRead1[num[cnt]];
else
{
for (int i = cnt; i > 0; --i)
{
if(num[i] == 0)
{
bOutZero = true;
++iZeroCnt;
}
else
{
if (bOutZero)
str += _T("零");
bOutZero = false;
--iZeroCnt;
if( 2 != cnt || i != cnt || 1 != num[i] ) //添加上这一句, 让"15",显示"十五",不是"一十五"
str += strRead1[num[i]];
str += strRead2[i];
}
if (i == 5 && iZeroCnt < 3)
str += _T("万");
}
}
}
void wmain(int argc, TCHAR* argv)
{
cout << "请输入一个整数:";
int a;
cin >> a;
STRING buf;
TransToStr(a,buf);
cout<<buf<<endl;// 有_UNICODE 或UNICODE时,应注释掉该句
}