#include <stdio.h> #include <string.h> void dollars( char *dest, char const *src ); void main() { char str[20],string[25]; gets( str ); dollars( string, str ); printf("%s/n",string); } void dollars( char *dest, char const *src ) { int len,i,j,fuhao,zheng,gao=0; /*gao要赋0,当整数位不超过三位时*/ len = strlen(src); fuhao = len/3; /*用来记录总共多出多少个符号,.*/ zheng = len-2; /*用来记录整数位的个数*/ if ( zheng >3 ) gao = zheng%3; /*用来记录第一个逗号之前的位数*/ *(dest++) = '$'; if ( len < 3 ) /*单不足一美元的时候*/ { *(dest++) = '0'; *(dest++) ='.'; if ( len ==1 ) *(dest++) = '0'; } for ( i=0,j=0; *(src+i)!='/0'; i++) { if ( gao ) /*不能使用if ( gao-- ) */ { *(dest++) = *(src+i); gao--; } else { *(dest++) = *(src+i); j++; } if ( gao==0&&j==0 || j%3==0&&j>0&&fuhao>1 ) { *(dest++) = '/,'; fuhao--; } else if ( i==len-3 ) *(dest++) = '.'; } *dest = '/0'; }