c语言,数字转汉字并返回

//盗墓者是个丑奴儿,原

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

//准备汉字数组
char * (s[])={"零","一","二","三","四","五","六","七","八","九","十"};

 

//字符串转换方法,字符串转汉字

char ** tansformation(const char * str,int length){
 

        //malloc结果放在堆上,便于长久保持。二重指针,引用char *的指针

        char ** tran_str=(char **)malloc(sizeof(str)*8);
 

        //转换

        for(int i=0;i<8;i++){
                if(str[i]>=48 && str[i]<=57){
                        *(tran_str+i)=s[str[i]-48];
                }else{
                        *(tran_str+i)="-";
                }
        }

        return tran_str

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 C 语言实现人民币大小写换的示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> char *chineseNumber[] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; char *unit[] = {"", "拾", "佰", "仟", "万", "亿"}; char *convertToChinese(double money) { char *result = (char *) malloc(sizeof(char) * 1024); // 申请内存 memset(result, 0, sizeof(char) * 1024); // 初始化为 0 int integerPart = (int) money; // 取整数部分 int decimalPart = (int) ((money - integerPart) * 100); // 取小数部分 int i, j, k = 0; for (j = integerPart; j > 0; j /= 10) { int digit = j % 10; if (digit != 0 || k % 4 == 0) { strcat(result, unit[k % 9]); // 每四位加一个单位 strcat(result, chineseNumber[digit]); // 数字换成中文 } k++; } // 倒序后得到正序 strrev(result); // 处理小数部分 if (decimalPart > 0) { strcat(result, "点"); // 加上小数点 char *decimalStr = (char *) malloc(sizeof(char) * 3); sprintf(decimalStr, "%d", decimalPart); // 将小数部分换成字符串 strcat(result, chineseNumber[decimalStr[0] - '0']); if (decimalPart % 10 > 0) { strcat(result, chineseNumber[decimalStr[1] - '0']); } free(decimalStr); // 释放申请的内存 } else { strcat(result, "整"); // 没有小数部分,则加上“整” } return result; // 返回结果 } int main() { double money = 12345.67; printf("%.2f 换成中文大写是:%s\n", money, convertToChinese(money)); return 0; } ``` 代码说明: - `chineseNumber` 数组存储了数字 0-9 对应的中文大写; - `unit` 数组存储了每个数字的单位,例如万、亿等; - `convertToChinese` 函数实现了将数字换成中文大写的功能; - `main` 函数中调用 `convertToChinese` 函数将数字换成中文大写,并输出结果。 输出结果: ``` 12345.67 换成中文大写是:壹万贰仟叁佰肆拾伍元陆角柒分 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值