首页 >> 大全

将数字字符串转换为美元形式

2023-08-02 大全 25 作者:考证青年

将数字字符转换为美元形式

要求:

编写程序将一个数字字符串(代表以美分为单位的金额)转换为美元形式,如:

字符串数值转换有几种方法__字符串如何转化为数字型

函数原型为:

void ( char *dest,char const *src );

src指向需要被格式化的字符,格式化的结果保存在dest中。要求所创建的字符串以一个NUL字节结尾。src的值不能被修改。

思路:

字符串数值转换有几种方法__字符串如何转化为数字型

由于当字符串长度小于3个字符时会出现需增添’0’的情况,应做特殊讨论,所以应将小数点前和小数点后的转换分开进行,当小数点前的部分操作完毕,下一个操作便是插入小数点,以及对小数部分进行转换。

对于字符串长度小于3个字符时的情况,它们的共性是在$后的小数点前部分,都为’0’,对于小数部分,当字符数为2时,不需增添’0’,字符数为1时,需增添一个’0’,字符串为0时,需增添两个’0’,考虑使用条件操作符以包含所有上述情况。

对于字符数大于等于3的字符串,其转换过程是一个依次复制的过程,不过需要在特定位置插入逗号,设i为去除两个小数部分字符后的字符数,使用其控制循环,当i减为0时,证明小数点前的部分已复制完毕。研究src去除最后两个字符后的字符串,若将最后一个字符编号为1,倒数第二个字符编号为2,以此类推……,那么从最后往前看,每出现3个字符便需加逗号,即当i%3==0时为加逗号的条件之一,因此在复制编号为此i值的字符之前便需进行插入逗号的操作。

代码:

#include 
void dollars( register char *dst,register char const *src )
{int len;if( dst==NULL||src==NULL )return;*dst++ ='$';len=strlen( src );/*若数字字符串足够长,复制将出现在小数点左边的数字,在适当的位置**加逗号。若字符串短于3个数字,在小数点前面再添加一个'0'*/if( len>=3 ){int i;for( i=len-2;i>0; ){*dst++ = *src++;if( --i>0 && i%3==0 )*dst++ = ',';}}else*dst++='0';/*存储小数字,然后存储'src'中剩余的数字。若'src'中的数字少于2个**数字,用'0'填充,然后在'dst'中添加NUL终止符*/*dst++ = '.';*dst++ = len < 2 ? '0' : *src++;*dst++ = len < 1 ? '0' : *src;dst=0;
}

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了