1. 更新说明
- 添加与 “零圆整” 等价的预先判断 (
0
/ 0.
/ 0.0
/ 0.00
/ .
/ .0
/ .00
)
- 修复了因使用函数
strdup
导致的内存泄漏
- 除去输入串多余的空白符(
空格
/ Tab制表符
)
2. 代码如下面所示
//=================================================================
// CPSTR: Copyright (c) 2020 By Abodu, All Rights Reserved.
// FNAME: arabToChinese.c
// AUTHR: abodu,abodu@qq.com
// CREAT: 2020-06-14 14:56:23
// ENCOD: UTF-8 Without BOM
// VERNO: 1.0.3
// LUPTS: 2021-10-21 22:18:50
//=================================================================
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/**
*** 阿拉伯数字表示的金额串转换成中文大写金额
*** 转换成功,则输出转换后的大写金额
*** 转换失败,则返回NULL
**/
char *arabToChinese(const char *aInput);
#define JINER_MAX_SIZE 1 << 5
#define CNFEE_MAX_SIZE 1 << 8
static char a_src[JINER_MAX_SIZE] = {0};
static char o_chn[CNFEE_MAX_SIZE] = {0};
static char *spo = o_chn;
char *CU_INT[] = {
"整", "圆", //
"拾", "佰", "仟", "萬", //
"拾", "佰", "仟", "億", //
"拾", "佰", "仟", "兆", //
"拾", "佰", "仟", "京", //
"拾", "佰", "仟", "垓" //
};
char *CU_DEC[] = {"负", "角", "份", "厘", "钱", "毫"};
char *CN[] = {"零", "壹", "贰", "叁", "肆", //
"伍", "陆", "柒", "捌", "玖"};
char