062.浮点数转换为字符串

举报
C语言与CPP编程 发表于 2022/04/30 22:55:55 2022/04/30
【摘要】 #include <stdio.h>#include <string.h> char c_je[51]; /*大写金额字符变量*/ char* zh( x ) /*数字金额转换为大写金额子程序*/double x; /*要...

  
  1. #include <stdio.h>
  2. #include <string.h>
  3. char c_je[51]; /*大写金额字符变量*/
  4. char* zh( x ) /*数字金额转换为大写金额子程序*/
  5. double x; /*要转换的金额数*/
  6. {
  7. int i, n, bz;
  8. char je[14]; /*数字金额的字符变量*/
  9. char temp[13];
  10. char f1[10][3] = {"零","壹","贰","叁","肆","伍",
  11. "陆","柒","捌","玖"}; /*数字对应的大写数组变量*/
  12. char f2[11][3] = {"亿","仟","佰","拾","万",
  13. "仟","佰","拾","元","角","分"}; /*每位数字对应单位数组变量*/
  14. sprintf( je, "%.01f", 100*x); /*转换成字符*/
  15. n = strlen( je );
  16. c_je[0] = '\0';
  17. bz = 1;
  18. for( i = 0; i < n; i++ )
  19. {
  20. strcpy( temp, &je[i] ); /*复制到临时数组*/
  21. if( atoi(temp)==0) /*判断第i位后是否全为0*/
  22. {
  23. bz = 2;
  24. break;
  25. }
  26. if( je[i] != '0' )
  27. {
  28. if( bz == 0 )
  29. strcat( c_je, f1[0] );
  30. strcat( c_je, f1[je[i] - '0'] ); /*数字串转化字符串*/
  31. bz = 1;
  32. strcat( c_je, f2[13-n+i]);
  33. }
  34. else
  35. {
  36. if( n-i == 7 && (je[i-1]!='0'||je[i-2]!='0' || je[i-3]!='0')) /*判断万位位置*/
  37. strcat( c_je, "万" );
  38. if( n-i == 3 ) /*判断个位数的元位置*/
  39. strcat( c_je, "元");
  40. bz = 0;
  41. }
  42. }
  43. if( bz == 2 )
  44. {
  45. if( n-i >= 7 && n-i < 10 )
  46. strcat( c_je, "万") ; /*万位数字为0,加‘万’*/
  47. if( n-i >= 3 )
  48. strcat( c_je, "元");
  49. strcat( c_je, "正" ); /*最后不是分位,加“正”*/
  50. }
  51. return c_je; /*返回大写金额*/
  52. }
  53. main()
  54. {
  55. double count;
  56. //clrscr();
  57. printf("*********************************************************\n");
  58. printf("* *\n");
  59. printf("* 数字金额转换为大写金额程序 Ver.1.0 *\n");
  60. printf("* *\n");
  61. printf("* By RZLIN *\n");
  62. printf("* *\n");
  63. printf("* 请输入要转换的金额: *\n");
  64. printf("* ");
  65. scanf("%lf", &count );
  66. printf("* 您输入的金额为:%10.2lf 。 *\n",count);
  67. printf("* *\n");
  68. printf("*转换为大写金额是:%s\n", zh( count ) );
  69. printf("* *\n");
  70. puts("* 请按任意键退出... *");
  71. printf("*********************************************************\n");
  72. getch();
  73. }

文章来源: blog.csdn.net,作者:程序员编程指南,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_41055260/article/details/124495567

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。