您的位置:首页 > 其它

将数字字符串转换为美元的形式(练习)

2010-10-28 13:13 435 查看
实现的功能:

输入 输出 输入 输出

0 $0.00 1111 $11.11

1 $0.01 111111 $1,111.11

11 $0.11 1111111 $11,111.11

111 $1.11 11111111111 $111,111,111.11

具体实现方法:

#include <stdio.h>#include <string.h>/*第一种方法,从字符串的后面向前面处理*/void dollars( char *dest, char *src ){int len;/*首先处理字符数小于3的几种特殊情况*/if (*src == '/0'){strcpy( dest, "$0.00" );}len = strlen( src );if (len == 1){strcpy( dest, "$0.0" );strcat( dest, src );}if( len == 2 ){strcpy( dest, "$0." );strcat( dest, src );}/*三个以上字符串的处理*/ if( len >= 3 ){int num = len/3 + 1;int i = 3;/*处理小数的情况*/ while( i-- > 0 ){*(dest + len + num ) = *(src + len );len--;}*(dest + len + num ) = '.';num--;while ( len >= 0 ){i = 3;while( (i-- > 0) && len >= 0 ){*(dest + len + num ) = *(src + len );len--;}*(dest + len + num ) = ',';num--;}num++;*(dest + len + num) = '</p>;}}/*第二种方案按照字符串的顺序处理字符串,这种方式较简单*/void dollars2( char *dest, char *src ){int len;len = strlen( src ); *dest++ = '</p>; /*首先处理小数点前面的部分*/if ( len >= 3 ){int i;i = len - 2;while ( i > 0 ){*dest++ = *src++;if( (--i > 0) && (i%3 == 0) ){*dest++ = ',';}}}/*如果src字符串小于3,则需在字符串的前面还要加一个0*/else{*dest++ = '0';}/*开始处理小数部分*/*dest++ = '.';*dest++ = len < 2 ? 0 : *src++;*dest++ = len < 1 ? 0 : *src++;*dest = '/0';  } int main(){char src[] = "1234567892354";char dest[100];dollars2( dest, src );puts( dest );}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐