社区
C++ 语言
帖子详情
vc++将数字转换成中文
beiler.dong
2008-10-27 05:23:12
输入亿以内的数字然后输出中文,例如:输入123456输出十二万三千四百五十六
有哪位会的 谢谢指教
...全文
148
3
打赏
收藏
vc++将数字转换成中文
输入亿以内的数字然后输出中文,例如:输入123456输出十二万三千四百五十六 有哪位会的 谢谢指教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
llguan
2008-10-28
打赏
举报
回复
体力活,有体力的来坐下
beiler.dong
2008-10-28
打赏
举报
回复
哥们,这东西编译也通不过啊
wuyu637
2008-10-27
打赏
举报
回复
本文所讲要实现的功能是采用C++将人民币阿拉伯数字转成中文大写,具体功能如下:
#include <stdio.h>
#include <math.h>
const char mnUnit[3][2]={"分","角","元"};
const char OtherWords[2][2]={"整","负"};
const char hzUnit[8][2]={"拾","佰","仟","万","拾","佰","仟","亿"};
const char hzNum[10][2]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
extern "C" __declspec(dllexport)
unsigned char __stdcall Money2ChineseCapital2(const double Num,
const unsigned char BufferLength,
char *Buffer
)
{
char szChMoney[33*4+1],*szNum;
int iLen,iLen2, iNum, iAddZero=0;
char buff[33];
char *buf=buff;
sprintf( buf,"%0.0f",(double)(__int64)(Num*100.0+0.5*(Num<0.0?(-1):1)));
iLen=strlen(buf);
szNum=szChMoney;
if(Num<0.0)
{
*(szNum++)=OtherWords[1][0];
*(szNum++)=OtherWords[1][1];
buf++;
iLen--;
}
for(int i=1;i<=iLen;i++)
{
iNum=buf[i-1]-48;
iLen2=iLen-i;
if(iNum==0)
{
if((iLen2-2)%4==0&&(iLen2-3)>0&&((iLen2>=8)||iAddZero<3))
{
*(szNum++)=hzUnit[(iLen2-3)%8][0];
*(szNum++)=hzUnit[(iLen2-3)%8][1];
}
iAddZero++;
if(iLen>1&&iLen2==1)
{
*(szNum++)=hzNum[0][0];
*(szNum++)=hzNum[0][1];
}
}
else
{
if((iAddZero&&iLen2>=2)&&((iLen2-1)%4!=0)||(iAddZero>=4&&(iLen2-1)>0))
{
*(szNum++)=hzNum[0][0];
*(szNum++)=hzNum[0][1];
}
*(szNum++)=hzNum[iNum][0];
*(szNum++)=hzNum[iNum][1];
iAddZero=0;
}
if((iAddZero<1)||(iLen2==2))
{
if(iLen-i>=3)
{
*(szNum++)=hzUnit[(iLen2-3)%8][0];
*(szNum++)=hzUnit[(iLen2-3)%8][1];
}
else
{
*(szNum++)=mnUnit[(iLen2)%3][0];
*(szNum++)=mnUnit[(iLen2)%3][1];
}
}
}
int Result=szNum-szChMoney;
if(Result+(Num<0.0?(-2):0)==0)
{
*(szNum++)=hzNum[0][0];
*(szNum++)=hzNum[0][1];
*(szNum++)=mnUnit[2][0];
*(szNum++)=mnUnit[2][1];
*(szNum++)=OtherWords[0][0];
*szNum=OtherWords[0][1];
Result+=6;
}
else
if(buf[iLen+(Num<0.0?1:0)-1]=='0')
{
*(szNum++)=OtherWords[0][0];
*szNum=OtherWords[0][1];
Result+=2;
}
if(BufferLength)
{
if(BufferLength>0)
Result=(Result>BufferLength)?BufferLength:Result;
memcpy(Buffer,szChMoney,Result);
}
return Result;
}
阿拉伯
数字
小写金额
转换成
中文
大写金C额程序说明
本文介绍了如何使用C语言编程将阿拉伯
数字
小写金额转换为
中文
大写金额,遵循了
中文
大写金额的书写规范,并提供了程序的实现思路和检验程序示例。程序在Dev-
C++
和V
C++
6.0环境下运行,处理整数和小数部分的转换,并对输入进行了部分错误处理。
V
C++
数字
转
中文
程序代码
本文提供了一段V
C++
程序代码示例,该代码能够将阿拉伯
数字
转换为对应的
中文
大写形式,适用于打印程序中
数字
的
中文
显示。此外,代码还包含了人民币单位如仟、佰、萬等的特殊转换。
c语言编程阿拉伯
数字
转
中文
,阿拉伯
数字
到
中文
大写
数字
的转换
这篇博客介绍了一个使用C语言编程的方法,将输入的阿拉伯
数字
转换成
对应的
中文
大写
数字
。通过创建特定的数据结构和一系列的转换函数,实现了从低位到高位的
数字
转换,并将结果存储在线性链表中。最后,程序遍历链表并输出转换后的
中文
大写
数字
。
V
C++
的Unicode编程
本文详细探讨了在V
C++
环境中进行Unicode编程的技术和注意事项,包括如何使用API,Windows平台下的Unicode支持,以及如何扩展Unicode应用。通过实例解析,帮助开发者掌握Unicode字符串处理和程序设计的关键点。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章