C语言 浮点数转换为字符串

#include<stdio.h>#include<stdlib.h>#include<string.h>charc_je[51];char*zh(doublex)/*数... #include <stdio.h>
#include <stdlib.h>
#include <string.h>

char c_je[51];

char* zh(double x ) /*数字金额转换为大写金额子程序*/
{
int i,n,bz;
char je[14];
char temp[13];
char f1[10][3]={"零","壹","贰","叁","肆","伍",
"陆","柒","捌","玖"}; /*数字对应的大写数组变量*/

char f2[11][3]={"亿","仟","佰","拾","万",
"仟","佰","拾","元","角","分"}; /*每位数字对应单位数组变量*/

sprintf(je,"%.01f",100*x);
n=strlen(je);
//printf("%d GGGGG",n);
c_je[0]='\0';
bz=1;
for(i=0;i<n;i++)
{
strcpy(temp,&je[i]);
if(atoi(temp)==0)
{
bz=2;
if(i==0)
strcat(c_je,f1[0]);
break;
}
if(je[i]!='0')
{
if(bz==0)
strcat(c_je,f1[0]);
//printf("%s ++++",f1[je[i]-'0']);
strcat(c_je,f1[je[i]-'0']);
bz=1;
strcat(c_je,f2[13-n+i]);
}
else
{
if(n-i==7&&(je[i-1]!='0'||je[i-2]!='0'||je[i-3]!='0'))
strcat(c_je,"万");
if(n-i==3)
strcat(c_je,"元");
bz=0;
}
}
if(bz==2)
{
if(n-i>=7 && n-i<10)
strcat(c_je,"万");
if(n-i>=3)
strcat(c_je,"元");
strcat(c_je,"正");
}
return c_je;
}

main()

{
zh(1234.56);
}

请问 strcat(c_je,f1[je[i]-'0']);里面f1[je[i]-'0']为什么要-‘0’ je[i]-'0'是什么意思
展开
 我来答
叶片舟
2013-06-18 · TA获得超过652个赞
知道小有建树答主
回答量:285
采纳率:100%
帮助的人:319万
展开全部
因为je[i]是字符,所以字符转换为数字,需要减去 '0'
所以je[i]-'0'这个就是把字符变换为数字
Raiuy
2013-06-18 · TA获得超过2916个赞
知道大有可为答主
回答量:2210
采纳率:0%
帮助的人:899万
展开全部
je[i]存的是一个字符型数据的ASCII码,比如'1'会被存为49
'0'的ASCII码为48,所以49-48正好就是整数类型的1
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式